Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package dibujar;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Graphics;
  5. import java.awt.Point;
  6. import java.awt.event.MouseEvent;
  7. import java.awt.event.MouseMotionAdapter;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11.  
  12. /**
  13.  *
  14.  * @author Rafa
  15.  */
  16. public class Dibujar extends JPanel{
  17.     private int contPuntos = 0; //cuenta num puntos
  18.     private Point puntos[] = new Point[100000]; //Arreglo 10000 referencias
  19.    
  20.     public Dibujar(){
  21.          addMouseMotionListener(
  22.             new MouseMotionAdapter(){ //clase interna anonima
  23.                 public void mouseDragged(MouseEvent evento){
  24.                     if(contPuntos < puntos.length){
  25.                         puntos[contPuntos] = evento.getPoint();
  26.                         contPuntos++;
  27.                         repaint();
  28.                     } //end if
  29.                 } //end mouseDragged
  30.             } //end clase interna anonima
  31.          ); //fin llamada addMouseMotionListener
  32.     } //end constructor
  33.    
  34.     public void paintComponent(Graphics g){
  35.         super.paintComponent(g); //borra el area de dibujo
  36.        
  37.         //dibuja puntos en el arreglo
  38.         for(int i=0; i<contPuntos; i++){
  39.             g.fillOval(puntos[i].x, puntos[i].y, 4, 4);
  40.         }
  41.        
  42.     }
  43.    
  44.     //Establece GUI y registra manejador eventos
  45.     public static void main(String[] args) {
  46.         JFrame app = new JFrame("Programa de dibujo");
  47.         Dibujar dibujar = new Dibujar(); //crea panel de dibujo
  48.         app.add(dibujar, BorderLayout.CENTER);
  49.  
  50.         app.add(new JLabel("Arrastre el mouse para dibujar"), BorderLayout.SOUTH);
  51.         app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  52.         app.setSize(500, 500);
  53.         app.setVisible(true);
  54.     }
  55. }