elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con problema de animacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con problema de animacion  (Leído 7,848 veces)
Barbara2010

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda con problema de animacion
« en: 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.

Código:
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());
    }


}


En línea

M3LiNdR1

Desconectado Desconectado

Mensajes: 131



Ver Perfil WWW
Re: Ayuda con problema de animacion
« Respuesta #1 en: 15 Junio 2010, 13:48 pm »

Para controlar el tiempo, yo usaria la clase Timer -> http://java.sun.com/j2se/1.5.0/docs/api/java/util/Timer.html

Y para mover, las imagen de forma aleatoria usa..., espera me creo un main, y ahora te digo como lo haria xd



EDITO: Cada cuando X tiempo se tienen que desplazar las imagenes?



« Última modificación: 15 Junio 2010, 14:28 pm por M3LiNdR1 » En línea

Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res...


C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript
Barbara2010

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda con problema de animacion
« Respuesta #2 en: 15 Junio 2010, 20:58 pm »

Las inagenes se tienen que desplazazr de forma aleatoria por la pantalla.
Cada imagen tiene un tiempo de vida de 30 segundos cumplidos los 30 segundos deben desaparecer de la pantalla.
Es por eso que yo trabaje con Threads usando el metodo sleep para dormir los hilos a los 30 segundos.
Espero que me puedas ayudar con el movimiento porque estoy perdida
Gracias
En línea

M3LiNdR1

Desconectado Desconectado

Mensajes: 131



Ver Perfil WWW
Re: Ayuda con problema de animacion
« Respuesta #3 en: 16 Junio 2010, 15:39 pm »

Para mover la imagen de forma aleatoria, usaria la clase timer, para q cada un segundo, me la ponga a un sitio aleatorio del formulario.


Luego por la noche, te pego un codigo ;)
En línea

Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res...


C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript
Barbara2010

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda con problema de animacion
« Respuesta #4 en: 16 Junio 2010, 17:47 pm »

Ok gracias pero no se utilizar muy bien la clase Timer y si serias tan amable me ayudarias con la clase Thread Porfis
En línea

M3LiNdR1

Desconectado Desconectado

Mensajes: 131



Ver Perfil WWW
Re: Ayuda con problema de animacion
« Respuesta #5 en: 17 Junio 2010, 21:14 pm »

Espero que este codigo te ayude...


Código
  1.  
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.util.Random;
  8. import javax.swing.*;
  9.  
  10. class Ventana implements Runnable
  11. {
  12.  
  13.    private JLabel boton=new JLabel();
  14.    private JFrame principal;
  15.    private BorderLayout border;
  16.    JPanel panelbotones,panel;
  17.    private JButton agregar;
  18.    private Random r=new Random();
  19.    int x=0,y=0;
  20.    ImageIcon icono;
  21.    public  Ventana()
  22.    {
  23.       principal=new JFrame("Hormigas");
  24.       principal.setBounds(500,110,500,500);
  25.       border=new BorderLayout();
  26.       principal.setLayout(border);
  27.       panelbotones=new JPanel();
  28.       panel=new JPanel();
  29.       panel.setLayout(null);
  30.       panelbotones.setBackground(Color.WHITE);
  31.       panel.setBackground(Color.white);
  32.       principal.add(panel,BorderLayout.CENTER);
  33.       principal.add(panelbotones,BorderLayout.NORTH);
  34.  
  35.       principal.setVisible(true);
  36.       agregar=new JButton("Agregar Hormiga");
  37.       agregar.addActionListener(new ActionListener()
  38.       {
  39.  
  40.            public void actionPerformed(ActionEvent e)
  41.            {
  42.             Ventana.this.andar();
  43.  
  44.            }
  45.        });
  46.  
  47.       panelbotones.add(agregar);
  48.       principal.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  49.       principal.setVisible(true);
  50.    }
  51.  
  52.  private Timer temps2 = new Timer(30000, new ActionListener(){ // Crono2, Cada 30000 milisegundos genera este evento
  53.                public void actionPerformed(ActionEvent e) {
  54.                   boton.setVisible(false);
  55.                   temps1.stop();                              
  56.                   temps2.stop();
  57.                }
  58.  });
  59.  
  60.  private Timer temps1 = new Timer(500, new ActionListener(){   // Crono1, Cada 500 milisegundos genera este evento
  61.                public void actionPerformed(ActionEvent e) {
  62.  
  63.                    icono=new ImageIcon("C:\\Imagen");
  64.                    x=r.nextInt(800);
  65.                    y=r.nextInt(800);
  66.                    boton.setIcon(icono);
  67.                    boton.setBounds(x, y,100,100);
  68.                    Ventana.this.panel.add(boton);
  69.                    panel.updateUI();
  70.  
  71.                }
  72.  });
  73.  
  74.  public void andar()
  75.  {
  76.      System.out.println("La hormiga anda");
  77.      Thread hilo  = new Thread(this);
  78.      hilo.start();
  79.      temps2.start();
  80.  }
  81.  
  82.    public void run()
  83.    {
  84.        System.out.println("El Thread funciona");
  85.        temps1.start();
  86.        this.mover();
  87.  
  88.    }
  89.  
  90.    public void mover()
  91.    {
  92.        System.out.println("La hormiga se mueve");
  93.        x = r.nextInt(800);
  94.        y = r.nextInt(800);
  95.        boton.repaint();
  96.    }
  97.  
  98.    public void paint(Graphics g)
  99.    {
  100.        g.clearRect(x, y, icono.getIconWidth(), icono.getIconHeight());
  101.        g.drawImage(icono.getImage(), x, y, icono.getImageObserver());
  102.    }
  103.  
  104.  
  105. }
En línea

Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res...


C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript
Barbara2010

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda con problema de animacion
« Respuesta #6 en: 18 Junio 2010, 03:49 am »

Gracias por el codigo funciona pero ahora una pregunta como tendria que hacer para que me aparescan 2 o mas imagenes a la vez que tambien se muevan de igual manera.
En donde tendria que instanciar la JLabel que lleva la imagen de la hormiga de modo que cuando presione el boton salga una imagen se mueva y cuando vuelva a apretar el boton la primera imagen siga moviendose sin quedarse detenida
Espero haya sido clara
« Última modificación: 18 Junio 2010, 03:55 am por Barbara2010 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Animacion 3D
Diseño Gráfico
79137913 1 2,774 Último mensaje 2 Marzo 2011, 20:15 pm
por Darioxhcx
[Ayuda] Animación Matrix en C
Programación C/C++
kub0x 4 9,363 Último mensaje 26 Julio 2011, 23:19 pm
por kub0x
AYUDA - Animacion de Texto Horizantal!
Programación Visual Basic
Brian1511 2 1,800 Último mensaje 24 Noviembre 2012, 00:28 am
por Brian1511
ayuda con animacion
Desarrollo Web
General Dmitry Vergadoski 1 1,853 Último mensaje 19 Agosto 2013, 00:14 am
por #!drvy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines