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

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

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

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

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

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5.  
  6. public class React extends JFrame implements Runnable {
  7.  
  8.     private int vecX = 1, vecY = 1;
  9.     private boolean pause = false;
  10.  
  11.     {
  12.         setSize(300, 250);
  13.         setLocationRelativeTo(null);
  14.         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  15.         setVisible(true);
  16.  
  17.         addMouseListener(new MouseAdapter() {
  18.             @Override
  19.             public void mousePressed(MouseEvent e) {
  20.                 pause = !pause;
  21.             }
  22.         });
  23.     }
  24.  
  25.     public static void main(String[] args) throws AWTException {
  26.         React frame = new React();
  27.  
  28.         Thread thread = new Thread(frame);
  29.         thread.start();
  30.     }
  31.  
  32.     @Override
  33.     public void run() {
  34.         int x, y;
  35.         Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  36.         while (true) {
  37.             try {
  38.                 Thread.sleep(5);
  39.             } catch (InterruptedException e) {
  40.                 e.printStackTrace();
  41.             }
  42.             if (pause) continue;
  43.             x = getX() + vecX;
  44.             y = getY() + vecY;
  45.             if (d.width <= x + getWidth() || x <= 0) vecX = -vecX;
  46.             if (d.height <= y + getHeight() || y <= 0) vecY = -vecY;
  47.             setLocation(x, y);
  48.         }
  49.     }
  50. }

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


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

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

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

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

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

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