Как добавить дополнительный компонент на 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д