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.
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.
Código [Seleccionar]
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());
}
}