JPanel para desenhar com evento de mouse

0 respostas
D

Ola meus amigos, estou tentando fazer um panel que desenhe quando eu clicar e arrastar com o botao esquerdo e q apague quando clicar e arrastar com botao direiro. Olhem o codigo ai e se puder me ajudem por favor pois ele so ta desenhando, nao esta apagando.

import java.awt.Color;

import java.awt.Point;

import java.awt.Graphics;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import javax.swing.JPanel;

public class PaintPanel extends JPanel
{
private int pointCount = 0; // número de contagem de pontos

// array de 10000 referências java.awt.Point
private Point points[] = new Point[ 10000 ];

private boolean button = true;

// configura a GUI e registra handler de evento de mouse

public PaintPanel()

{

// trata evento de movimento de mouse do frame

addMouseMotionListener(
new MouseMotionAdapter()// classe interna anônima
  {  
     // armazena coordenadas de arrastar e repinta
     public void mouseDragged( MouseEvent event )                
     {                                                           
        if (event.isMetaDown()){
    	   if ( pointCount < points.length )                        
            {                                                        
             points[ pointCount ] = event.getPoint(); // localiza o ponto
             pointCount++; // incrementa número de pontos em array
             button = false;
             repaint(); // repinta JFrame
            }//fim if interno
        }else{
        	if ( pointCount < points.length )                        
            {                                                        
             points[ pointCount ] = event.getPoint(); // localiza o ponto
             pointCount++; // incrementa número de pontos em array
             button = true;
             repaint(); // repinta JFrame
            }//fim if interno
        }//fim do if else
     } // fim do método mouseDragged
  } // fim da classe interna anônima

); // fim da chamada para addMouseMotionListener
} // fim do construtor PaintPanel

// desenha oval em um quadro delimitador de 4x4 no local especificada na janela

public void paintComponent( Graphics g )

{

super.paintComponent( g ); // limpa a área de desenho
// desenha todos os pontos no array

if (button = true){

g.setColor(Color.BLUE);

}else{

g.setColor(Color.WHITE);

}

for ( int i = 0; i < pointCount; i++ )

g.fillOval( points[ i ].x, points[ i ].y, 4, 4 );

} // fim do método paintComponent

} // fim da classe PaintPanel
Criado 16 de setembro de 2006
Respostas 0
Participantes 1