/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package borrar;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author felix
 */
public class Canicas extends JFrame{
    private AreaDibujo miAreaDibujo;
    private JButton boton1, boton2;
    private Canica miCanica;
    private MueveCanica mover;
    private Random r;
    
    public Canicas(){
        JPanel AreaControl = new JPanel(new GridLayout(2,1));
        boton1 = new JButton("Agregar");
        boton2 = new JButton("Borrar");
        miAreaDibujo = new AreaDibujo();
        miCanica = new Canica(200, 200);
        r = new Random();
        mover = new MueveCanica();
        mover.start();
        
        AreaControl.add(boton1);
        AreaControl.add(boton2);
        
        add(AreaControl, BorderLayout.WEST);
        add(miAreaDibujo, BorderLayout.EAST);
        pack();
        
        this.setVisible(true);
    }
    
    class MueveCanica extends Thread{
        int dx, dy;
        @Override
        public void run() {
            while(true) {
                dx = (r.nextInt())%2;
                dy = (r.nextInt())%2;
                miCanica.mueve(dx, dy);
                try {
                    sleep(100);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Canicas.class.getName()).log(Level.SEVERE, null, ex);
                }
                repaint();
            }
        }    
    }
    
    private class AreaDibujo extends JPanel{
        public AreaDibujo() {
            this.setBackground(Color.WHITE);
            this.setPreferredSize(new Dimension(600, 600));
        }
        
        @Override
        public void paint(Graphics g) {
            miCanica.dibuja(g);
        }     
    }
    
    private class Canica {
        int x0, y0;
        
        public Canica(int unaX, int unaY) {
            x0 = unaX;
            y0 = unaY;
        }
        
        public void mueve(int dx, int dy) {
            x0 = x0 + dx;
            y0 = y0 + dy;
        }
        
        public void dibuja(Graphics g) {
            g.setColor(Color.BLACK);
            g.fillOval(x0, y0, 10, 10);
        }
    }
    
    static public void main(String a[]) {
        new Canicas();
    }

}
