Перерисовка окна в таймере - Java
Формулировка задачи:
Нужно сделать что бы окно перерисовывалось постоянно с определенным интервалом.
Окно сделано с помощью JFrame(если не правильно выражаюсь поправьте, изучать java начал недавно)
В основном классе в методе main создал таймер, создал таск для него
Перерисовку окна делаю с помощью revalidate(), repaint()
Программа запускается, окно создается но рисование не происходит
Подскажите в чем проблема
Первый файл
Второй файл
Листинг программы
- import java.util.*;
- public class Main {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //GraphicsMain app = new GraphicsMain();
- Timer t = new Timer();
- TimerTask tt = new TimerTask(){
- GraphicsMain app = new GraphicsMain();
- @Override
- public void run()
- {
- app.revalidate();
- app.repaint();
- }
- };
- t.schedule(tt, 0, 100);
- }
- }
Листинг программы
- import java.awt.*;
- import javax.swing.*;
- import java.util.Random;
- public class GraphicsMain extends JFrame {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- public GraphicsMain() {
- JFrame frame = new JFrame("simpleApp");
- frame.setSize(1024,768);
- frame.setVisible(true);
- }
- @Override
- public void paint(Graphics g) {
- Random r = new Random();
- Graphics2D g2d = (Graphics2D) g;
- g2d.setColor(Color.black);
- g2d.drawLine(r.nextInt(1024), r.nextInt(768), r.nextInt(1024)+400, r.nextInt(768)+400);
- }
- }
Решение задачи: «Перерисовка окна в таймере»
textual
Листинг программы
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.*;
- import java.util.Random;
- public class GraphicsMain extends JFrame {
- private static final long serialVersionUID = 1L;
- static JFrame frame = new JFrame("simpleApp");
- public GraphicsMain() {
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(1024,768);
- frame.setVisible(true);
- }
- }
- class Panel extends JPanel {
- public void paintComponent(Graphics g) {
- Random r = new Random();
- Graphics2D g2d = (Graphics2D) g;
- g2d.setColor(Color.black);
- g2d.drawLine(r.nextInt(1024), r.nextInt(768), r.nextInt(1024)+400, r.nextInt(768)+400);
- }
- }
- class Action implements ActionListener {
- @Override
- public void actionPerformed(ActionEvent e) {
- Panel p = new Panel();
- GraphicsMain.frame.add(p);
- p.revalidate();
- p.repaint();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д