Duvida com timmer para gerar figuras

0 respostas
P

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);
            
            
        }
        
        
        
        
    }

}
Criado 4 de setembro de 2009
Respostas 0
Participantes 1