Анимация: нарисовать зеленый квадрат, который будет двигаться от края до края окна - Java
Формулировка задачи:
Здравствуйте. Нужно нарисовать зеленый квадрат, который будет двигаться от края до края окна и повторять свое движение.
Заранее спасибо.
Решение задачи: «Анимация: нарисовать зеленый квадрат, который будет двигаться от края до края окна»
textual
Листинг программы
- package rectanglemoving;
- import java.awt.EventQueue;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- /**
- *
- * @author Nicholas White
- */
- public class RectangleMoving extends JFrame {
- public RectangleMoving() {
- initUI();
- }
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- new RectangleMoving().setVisible(true);
- }
- });
- private void initUI() {
- setContentPane(new Board());
- setSize(400, 300);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- }
- package rectanglemoving;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JPanel;
- import javax.swing.Timer;
- /**
- *
- * @author Nicholas White
- */
- public class Board extends JPanel implements ActionListener {
- private int DELAY = 10;
- int rectX = 20;
- int rectY = 20;
- Timer timer;
- public Board() {
- timer = new Timer(DELAY, this);
- timer.start();
- }
- @Override
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
- g.setColor(java.awt.Color.GREEN);
- g.fillRect(rectX, rectY, 40, 40);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- moveRect();
- repaint();
- }
- private void moveRect() {
- rectX += 1;
- if(rectX >= getParent().getWidth()){
- rectX = 0;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д