Как добавить дополнительный компонент на Frame? - Java
Формулировка задачи:
Всем привет. Помогите разобраться как добавить дополнительную анимированную фигуру на панель. Добавлять дополнительный метод отрисовки (.drawRect()) не хороший вариант, хочется чтобы фигуры были реализованы через отдельный класс со своими независимыми полями. Код:
import javax.swing.*; import java.awt.*; public class Test extends JFrame { Test (String s) { super(s); MyComponent panel = new MyComponent(); panel.setPreferredSize(new Dimension(300, 300)); add(panel); pack(); setVisible(true); this.setLocationRelativeTo(null); } public static void main(String[] args) { Runnable doHelloWorld = new Runnable() { public void run() { JFrame a = new Test("test"); a.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }; SwingUtilities.invokeLater(doHelloWorld); } public class MyComponent extends JComponent implements Runnable{ private long t = System.nanoTime(); public int exct = 0; public boolean updown = false; public MyComponent(){ super(); new Thread(this).start(); } @Override public void run() { while (true) { repaint(); try { Thread.sleep(5); } catch (InterruptedException ex) {} } } @Override protected void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.draw3DRect(120, exct, 40, 40, true); if(exct >= 260) { System.out.println("Yoooooha"); updown = false; } else if (exct <= 0) { updown = true; } if(updown == true) { exct += 1; } else { exct -= 1; } System.out.println(exct + "|" + updown); } } }
Решение задачи: «Как добавить дополнительный компонент на Frame?»
textual
Листинг программы
new Thread(this).start();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д