Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Barbara2010

#1
Java / Ayuda con problema de animacion
15 Junio 2010, 05:33 AM
Hola tengo un problema que consiste en que debo hacer un programa en donde cada vez que aprieto con boton salga una imagen y se mueva de forma aleatoria y a los 30 segundos desaparesca.
El problema que tengo es que no se como hacer el movimiento aleatorio (arriba, abajo, izquierda ,derecha, diagonales no)  y ademas debo trabajar con Threads para cada una de las imagenes que deben moverse. Espero haya sido clara
Aca dejo mi codigo para ver si alguien puede ayudarme.

package hormigas;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;

class Ventana implements Runnable
{
    private JFrame principal;
    private BorderLayout border;
    JPanel panelbotones,panel;
    private JButton agregar;
    Random r=new Random();
    int x=0,y=0;
    ImageIcon icono;
    public  Ventana()
    {
       principal=new JFrame("Hormigas");
       principal.setBounds(500,110,500,500);
       border=new BorderLayout();
       principal.setLayout(border);
       panelbotones=new JPanel();
       panel=new JPanel();
       panel.setLayout(null);
       panelbotones.setBackground(Color.WHITE);
       panel.setBackground(Color.white);
       principal.add(panel,BorderLayout.CENTER);
       principal.add(panelbotones,BorderLayout.NORTH);
   
       principal.setVisible(true);
       agregar=new JButton("Agregar Hormiga");
       agregar.addActionListener(new ActionListener()
       {

            public void actionPerformed(ActionEvent e)
            {
             Ventana.this.andar();
               
            }
        });
     
       panelbotones.add(agregar);
       principal.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
       principal.setVisible(true);
    }

  public void andar()
  {
   
      Thread hilo=new Thread(this);
      hilo.start();
       
  }

    public void run()
    {
       
         JLabel boton=new JLabel();
         icono=new ImageIcon("C:\\Hormiga.jpg");
         int x=r.nextInt(800);
         int y=r.nextInt(800);
         boton.setIcon(icono);
         boton.setBounds(x, y,100,100);
         Ventana.this.panel.add(boton);
         panel.updateUI();
         this.mover();
 
    }

    public void mover()
    {
       
        x++;
        y++;
        panel.repaint();
    }

    public void paint(Graphics g)
    {
        g.clearRect(x, y, icono.getIconWidth(), icono.getIconHeight());
        g.drawImage(icono.getImage(), x, y, icono.getImageObserver());
    }


}