Анимация: нарисовать зеленый квадрат, который будет двигаться от края до края окна - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Нужно нарисовать зеленый квадрат, который будет двигаться от края до края окна и повторять свое движение. Заранее спасибо.

Решение задачи: «Анимация: нарисовать зеленый квадрат, который будет двигаться от края до края окна»

textual
Листинг программы
  1. package rectanglemoving;
  2.  
  3. import java.awt.EventQueue;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6.  
  7. /**
  8.  *
  9.  * @author Nicholas White
  10.  */
  11. public class RectangleMoving extends JFrame {
  12.  
  13.     public RectangleMoving() {
  14.        initUI();
  15.     }
  16.    
  17.  
  18.     public static void main(String[] args) {
  19.         EventQueue.invokeLater(new Runnable() {
  20.             @Override
  21.             public void run() {
  22.                 new RectangleMoving().setVisible(true);
  23.             }
  24.         });
  25.  
  26. private void initUI() {
  27.         setContentPane(new Board());
  28.         setSize(400, 300);
  29.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  30.     }
  31.  
  32.     }
  33.  
  34.  
  35. package rectanglemoving;
  36.  
  37. import java.awt.Graphics;
  38. import java.awt.event.ActionEvent;
  39. import java.awt.event.ActionListener;
  40. import javax.swing.JPanel;
  41. import javax.swing.Timer;
  42.  
  43. /**
  44.  *
  45.  * @author Nicholas White
  46.  */
  47. public class Board extends JPanel implements ActionListener {
  48.    
  49.     private int DELAY = 10;
  50.     int rectX = 20;
  51.     int rectY = 20;
  52.     Timer timer;
  53.  
  54.     public Board() {
  55.         timer = new Timer(DELAY, this);
  56.         timer.start();
  57.     }
  58.    
  59.  
  60.     @Override
  61.     protected void paintComponent(Graphics g) {
  62.         super.paintComponent(g);
  63.         g.setColor(java.awt.Color.GREEN);
  64.         g.fillRect(rectX, rectY, 40, 40);
  65.     }
  66.  
  67.     @Override
  68.     public void actionPerformed(ActionEvent e) {
  69.         moveRect();
  70.         repaint();
  71.     }
  72.  
  73.     private void moveRect() {
  74.         rectX += 1;
  75.         if(rectX >= getParent().getWidth()){
  76.             rectX = 0;
  77.         }
  78.     }
  79.    
  80. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы