Java - Ayuda con Jframe y runnable

 
Vista:

Ayuda con Jframe y runnable

Publicado por Helb (11 intervenciones) el 07/06/2006 05:52:25
Tengo el siguiente código que desplaza un rectangulo atraves de la pantalla cambiando sus coordenadas, es un ejemplo de runnable implementado en un applet, pero yo necesito hacer la misma cosa con la única diferencia que debe ir en un JFrame ¿cómo lo hago? he probado pero algo no sale bien les pongo tambien el código que yo he modificado y que no funciona . Ayuuuda!! T_T

EL APPLET:

import java.applet.*;
import java.awt.*;

public class animacionenclase extends Applet implements Runnable {

private Thread hilo = null;
int j=0;

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

public void run (){
Thread hiloActual=Thread.currentThread();
while(hilo == hiloActual){
j++;
repaint();
try {
Thread.sleep( 500);
} catch(InterruptedException e){

}

}

}

public void paint(Graphics g){
g.drawRect( j*10, j*10, 50,50);

}

public void stop(){
hilo = null;
}

}

------------

AHORA AQUI ESTA EL MODIFICADO

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class animacion extends JFrame implements Runnable {
private FlowLayout esquema;
private Container contenedor;
private Thread hilo = null;
int j=0;

public animacion(){
super("PRUEBA DE RUNNABLE EN JFRAME");
esquema=new FlowLayout();
contenedor=getContentPane();
contenedor.setLayout(esquema);
contenedor.setBackground(Color.WHITE);

}


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

public void run (){
Thread hiloActual=Thread.currentThread();
while(hilo == hiloActual){
j++;
repaint();
try {
Thread.sleep( 500);
} catch(InterruptedException e){

}

}

}

public void paint(Graphics g){
g.drawRect( j*10, j*10, 50,50);

}

public void stop(){
hilo = null;
}

public static void main (String args[])
{
animacion aplicacion=new animacion();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

Si alguien pudiera ayudarle a este pobre principiante.... :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ayuda con Jframe y runnable

Publicado por chuidiang (950 intervenciones) el 07/06/2006 08:13:26
Hola:

Donde haces new animacion(), pon también

animacion.setSize (ancho,alto); // para dar tamaño a la ventana
animacion.setVisible(true); // Para hacerla visible

Un consejo. Es mejor no heredar nunca de JFrame ni de JApplet para hacer el "grueso" del codigo.. Es mejor heredar de JPanel. Si lo haces así, el mismo código te servirá para ambos casos.

En el caso de applet, heredarías de applet (no queda más remedio) y en el método start() pones algo como esto

public void start()
{
MiPanel p = new MiPanel();
add(p);
}

En el caso del JFrame, la clase principal no hace falta que herede de nadie y en el main pones esto

public static void main(String [] args)
{
JFrame v = new JFrame();
MiPanel p = new MiPanel();
v.getContentPane().add(p);
v.setSize(ancho,alto);
v.setVisible(trrue);
v.setDefaultCloseOperation(...);
}

De esta forma, ahorras repetir el código dos veces.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Jframe y runnable

Publicado por Helb (11 intervenciones) el 10/06/2006 07:00:27
He probado el código poniendo en donde me has dicho

aplicacion.setSize(200,200);
aplicacion.setVisible(true);

aparece el rectangulo pero no se "mueve" y es para eso que servia el applet , cualquier sugerencia es bienvenida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar