juego con jlabel
Publicado por juan (3 intervenciones) el 16/10/2008 04:48:00
Hola nesecito ayuda en este programa
Se hace el programa en java Developer 10g:
Hacer un programa de un bolita que rebote por toda la pantalla y al presionar la tecla Enter aparezca un segunda que rebote también por toda la pantalla simultáneamente a la primera, al presionar nueva mente la tecla Enter aparezca una tercera y así sucesivamente hasta llegar a 100 bolitas.
ya logre que "jlabel" rebote por toda la pantalla pero ahora tengo que hacer que aparezcan 100 jlabel para lo cual me han recomendado meter la programación de la pelotita en una clase y luego llamar a esta para que aparezca ven en frame 1 pero no se como hacer esto y mo hacer que apresca 100 veces
Me podrían explicar para poder aprender gracias.
Aquí les envió mí cogido de la pelotita la pelotita es un jlabel
package project1;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
public class Frame1 extends JFrame {
private JLabel b1 = new JLabel();
private JLabel b2 = new JLabel();
// Nota "ph" es posiocion horizontal y "pv" posicion vertical
//"mh" es movimiento horizontal y "mv" movimiento vertical
int pv1 = 50 , pv2 = 30;
int ph1 = 500, ph2 = 80;
int mh1 = 10 , mh2 =10 , mv1=10 , mv2=10;
Timer timer = new Timer ( 100, new ActionListener ()
{
public void actionPerformed(ActionEvent e){
//1-------------------------------------------------
if (ph1 > 560 || ph1 < 10 ){ mh1 = mh1 * -1;}
if (pv1 > 320 || pv1 < 10 ){ mv1 = mv1 * -1;}
ph1 = ph1 + mh1;
pv1 = pv1 + mv1;
b1.setBounds(ph1,pv1,20,20) ;
//2-------------------------------------------------
if (ph2 > 560 || ph2 < 10 ){ mh2 = mh2 * -1;}
if (pv2 > 320 || pv2 < 10 ){ mv2 = mv2 * -1;}
ph2 = ph2 + mh2;
pv2 = pv2 + mv2;
b2.setBounds(ph2,pv2,20,20) ;
}
});
public Frame1() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
timer.start();
}
private void jbInit() throws Exception {
this.getContentPane().setLayout( null );
this.setSize(new Dimension(600, 400));
this.setTitle("Juego");
b1.setBounds(new Rectangle(290, 20, 20, 20));
b1.setBackground(Color.white);
b1.setSize(new Dimension(20, 20));
b1.setBorder(BorderFactory.createLineBorder(Color.black, 1));
b2.setBounds(new Rectangle(370, 135, 20, 20));
b2.setBorder(BorderFactory.createLineBorder(Color.black, 1));
this.getContentPane().add(b2, null);
this.getContentPane().add(b2, null);
this.getContentPane().add(b1, null);
}
}
Se hace el programa en java Developer 10g:
Hacer un programa de un bolita que rebote por toda la pantalla y al presionar la tecla Enter aparezca un segunda que rebote también por toda la pantalla simultáneamente a la primera, al presionar nueva mente la tecla Enter aparezca una tercera y así sucesivamente hasta llegar a 100 bolitas.
ya logre que "jlabel" rebote por toda la pantalla pero ahora tengo que hacer que aparezcan 100 jlabel para lo cual me han recomendado meter la programación de la pelotita en una clase y luego llamar a esta para que aparezca ven en frame 1 pero no se como hacer esto y mo hacer que apresca 100 veces
Me podrían explicar para poder aprender gracias.
Aquí les envió mí cogido de la pelotita la pelotita es un jlabel
package project1;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
public class Frame1 extends JFrame {
private JLabel b1 = new JLabel();
private JLabel b2 = new JLabel();
// Nota "ph" es posiocion horizontal y "pv" posicion vertical
//"mh" es movimiento horizontal y "mv" movimiento vertical
int pv1 = 50 , pv2 = 30;
int ph1 = 500, ph2 = 80;
int mh1 = 10 , mh2 =10 , mv1=10 , mv2=10;
Timer timer = new Timer ( 100, new ActionListener ()
{
public void actionPerformed(ActionEvent e){
//1-------------------------------------------------
if (ph1 > 560 || ph1 < 10 ){ mh1 = mh1 * -1;}
if (pv1 > 320 || pv1 < 10 ){ mv1 = mv1 * -1;}
ph1 = ph1 + mh1;
pv1 = pv1 + mv1;
b1.setBounds(ph1,pv1,20,20) ;
//2-------------------------------------------------
if (ph2 > 560 || ph2 < 10 ){ mh2 = mh2 * -1;}
if (pv2 > 320 || pv2 < 10 ){ mv2 = mv2 * -1;}
ph2 = ph2 + mh2;
pv2 = pv2 + mv2;
b2.setBounds(ph2,pv2,20,20) ;
}
});
public Frame1() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
timer.start();
}
private void jbInit() throws Exception {
this.getContentPane().setLayout( null );
this.setSize(new Dimension(600, 400));
this.setTitle("Juego");
b1.setBounds(new Rectangle(290, 20, 20, 20));
b1.setBackground(Color.white);
b1.setSize(new Dimension(20, 20));
b1.setBorder(BorderFactory.createLineBorder(Color.black, 1));
b2.setBounds(new Rectangle(370, 135, 20, 20));
b2.setBorder(BorderFactory.createLineBorder(Color.black, 1));
this.getContentPane().add(b2, null);
this.getContentPane().add(b2, null);
this.getContentPane().add(b1, null);
}
}
Valora esta pregunta


0