На основе класса Thread, окно должно само двигаться по экрану - Java
Формулировка задачи:
Создать программу на языке JAVA. На основе класса Thread, окно должно само двигаться по экрану.
Решение задачи: «На основе класса Thread, окно должно само двигаться по экрану»
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);
}
}
}