На основе класса Thread, окно должно само двигаться по экрану - Java

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

Создать программу на языке JAVA. На основе класса Thread, окно должно само двигаться по экрану.

Код к задаче: «На основе класса Thread, окно должно само двигаться по экрану - Java»

textual
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
 
public class React extends JFrame implements Runnable {
 
    private int vecX = 1, vecY = 1;
    private boolean pause = false;
 
    {
        setSize(300, 250);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setVisible(true);
 
        addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                pause = !pause;
            }
        });
    }
 
    public static void main(String[] args) throws AWTException {
        React frame = new React();
 
        Thread thread = new Thread(frame);
        thread.start();
    }
 
    @Override
    public void run() {
        int x, y;
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        while (true) {
            try {
                Thread.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (pause) continue;
            x = getX() + vecX;
            y = getY() + vecY;
            if (d.width <= x + getWidth() || x <= 0) vecX = -vecX;
            if (d.height <= y + getHeight() || y <= 0) vecY = -vecY;
            setLocation(x, y);
        }
    }
}

10   голосов, оценка 3.500 из 5


СОХРАНИТЬ ССЫЛКУ