Ei pessoal estou ocm um problema quero que um timer fike rodando um evento que no caso seria desenhar figuras na tela
olhe o codgo e me diguem o q estou fazendo de errado ... grato!
o que eu tenho de fazer é o seguinte:
Escreva um programa utilizando janela em Java para criar um pseudo- protetor de tela, que desenha formas (GeneralPath) em posições aleatórias na tela e após um numero X de desenhos a tela deve ser apagada. Permita que cada vez que a tela for apagada ela seja desenhada de uma cor diferente.
Sugestão: Utilize um timer para imprimir as formas e outro para limpar a tela.
Timer t = new Timer (1000, new ActionListener() { public void actionPerformed(ActionEvent e){ repaint(); } } );
t.start();
package timer;
import java.awt.geom.*;
import java.awt.*;
import javax.swing.*;
import java.util.Random;
import java.awt.event.*;
/**
*
* @author Sagem110
*/
public class Main extends JFrame {
public Main(){
super("Triagulo em posições aleatorias");
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int delay = 10; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Container content = getContentPane();
MapPane map = new MapPane();
content.add(map);
}
};
new Timer(delay, taskPerformer).start();
setVisible(true);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Main frame = new Main();
}
class MapPane extends JPanel{
@Override
public void paintComponent(Graphics c){
Graphics2D c2 = (Graphics2D)c;
c2.setColor(Color.GREEN);
GeneralPath des = new GeneralPath();
Random gera = new Random();
int x1 = gera.nextInt(100);
int y1 = gera.nextInt(100);
int x2 = gera.nextInt(100);
int y2 = gera.nextInt(100);
int x3 = gera.nextInt(100);
int y3 = gera.nextInt(100);
des.moveTo(x1,y1 );
des.lineTo(x2,y2);
des.lineTo(x3,y3);
des.closePath();
c2.fill(des);
}
}
}