Отрисовкой анимации - Java
Формулировка задачи:
Проблемка в том что я циклом пытаюсь заставить кружок двигаться по панели в фрейме при нажатии кнопки старт. а он не хороший человек после задержки перемещается в заданную позицию. как исправить? помогите люди добрые.
Листинг программы
- public class MyFrame extends JFrame{
- JPanel bPanel;
- MyDrawPanel drawPanel;
- JButton startButton, stopButton;
- StartButtonListener listener = new StartButtonListener();
- int x=0,y=50;
- MyFrame(String s){
- super(s);
- bPanel = new JPanel();
- drawPanel = new MyDrawPanel();
- bPanel.setLayout(new BoxLayout(bPanel, BoxLayout.Y_AXIS));
- startButton = new JButton("Start");
- stopButton = new JButton("Stop");
- bPanel.add(startButton);
- bPanel.add(stopButton);
- getContentPane().add(BorderLayout.EAST, bPanel);
- getContentPane().add(drawPanel);
- startButton.addActionListener(listener);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setSize(500, 500);
- setVisible(true);
- }
- class StartButtonListener implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent ae) {
- if(ae.getSource() == startButton){
- for (int i = 0; i < 250; i++) {
- x++;
- drawPanel.repaint();
- try{
- Thread.sleep(10);
- }catch(Exception e){
- }
- }
- }
- }
- }
- class StopButtonListener implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent e) {
- }
- }
- public class MyDrawPanel extends JPanel{
- public void paintComponent(Graphics g) {
- g.setColor(Color.white);
- g.fillRect(0, 0, this.getWidth(), this.getHeight());
- g.setColor(Color.red);
- g.fillOval(x, y, 40, 40);
- }
- }
- }
Думаю что проблема в слушателе кнопки. Но не могу найти решение(
Решение задачи: «Отрисовкой анимации»
textual
Листинг программы
- Thread thr = new Thread(new Runnable() {
- @Override
- public void run() {
- for (int i = 0; i < 250; i++) {
- x++;
- drawPanel.repaint();
- try {
- Thread.sleep(10);
- } catch (Exception e) {
- }
- }
- }
- });
- thr.start();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д