Перерисовка окна в таймере - Java

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

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

Нужно сделать что бы окно перерисовывалось постоянно с определенным интервалом. Окно сделано с помощью JFrame(если не правильно выражаюсь поправьте, изучать java начал недавно) В основном классе в методе main создал таймер, создал таск для него Перерисовку окна делаю с помощью revalidate(), repaint() Программа запускается, окно создается но рисование не происходит Подскажите в чем проблема Первый файл
Листинг программы
  1. import java.util.*;
  2. public class Main {
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. //GraphicsMain app = new GraphicsMain();
  9. Timer t = new Timer();
  10. TimerTask tt = new TimerTask(){
  11. GraphicsMain app = new GraphicsMain();
  12. @Override
  13. public void run()
  14. {
  15. app.revalidate();
  16. app.repaint();
  17. }
  18. };
  19. t.schedule(tt, 0, 100);
  20. }
  21. }
Второй файл
Листинг программы
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import java.util.Random;
  4. public class GraphicsMain extends JFrame {
  5. /**
  6. *
  7. */
  8. private static final long serialVersionUID = 1L;
  9. public GraphicsMain() {
  10. JFrame frame = new JFrame("simpleApp");
  11. frame.setSize(1024,768);
  12. frame.setVisible(true);
  13. }
  14. @Override
  15. public void paint(Graphics g) {
  16. Random r = new Random();
  17. Graphics2D g2d = (Graphics2D) g;
  18. g2d.setColor(Color.black);
  19. g2d.drawLine(r.nextInt(1024), r.nextInt(768), r.nextInt(1024)+400, r.nextInt(768)+400);
  20. }
  21. }

Решение задачи: «Перерисовка окна в таймере»

textual
Листинг программы
  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4.  
  5. import javax.swing.*;
  6.  
  7. import java.util.Random;
  8.  
  9. public class GraphicsMain extends JFrame {
  10.    
  11.     private static final long serialVersionUID = 1L;
  12.     static JFrame frame = new JFrame("simpleApp");
  13.    
  14.     public GraphicsMain() {
  15.        
  16.        
  17.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.         frame.setSize(1024,768);
  19.                          
  20.         frame.setVisible(true);
  21.      
  22.     }
  23.  
  24.      
  25.  }
  26.  
  27.     class Panel extends JPanel {
  28.  
  29.  
  30.         public void paintComponent(Graphics g) {
  31.                    
  32.             Random r = new Random();
  33.                 Graphics2D g2d = (Graphics2D) g;
  34.                 g2d.setColor(Color.black);
  35.                 g2d.drawLine(r.nextInt(1024), r.nextInt(768), r.nextInt(1024)+400, r.nextInt(768)+400);
  36.              
  37.         }
  38.            
  39.         }
  40.    
  41.     class Action implements ActionListener {
  42.  
  43.         @Override
  44.         public void actionPerformed(ActionEvent e) {
  45.            
  46.                 Panel p = new Panel();
  47.                GraphicsMain.frame.add(p);
  48.                p.revalidate();
  49.                p.repaint();
  50.            
  51.            
  52.            
  53.         }
  54.        
  55.        
  56.        
  57.     }

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


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

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

12   голосов , оценка 4.333 из 5

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

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

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