Una ayuda con JPanel...
Hola, tengo un pequeño aporte pero necesito ayuda a reducir este còdigo que es un laberinto en JPanel... Necesito que los JLabel que hago por separado salga en un arreglo bidimensional con dos ciclos for anidados. Gracias.
Soy estudiante de progragramaciòn y pues si me aceptan el còdigo en mi colegio pero quieren que use arreglos bidimesionales para aceptarmelo pero no los se usar, mmmm, les agradezco la ayudita...
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Laberinto extends JFrame implements ActionListener
{
public JButton comenzar = new JButton("Comenzar");
public JButton reiniciar = new JButton("Reiniciar");
ImageIcon raton=new ImageIcon("raton.jpg");
ImageIcon ladrillo=new ImageIcon("ladrillo.jpg");
JLabel label[] ={ new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER)};
JLabel label1[] ={new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),new JLabel("",JLabel.CENTER),
new JLabel("",JLabel.CENTER)};
MiHilo hilo;
public Laberinto (){
getContentPane().setLayout(null);
setVisible(true);
this.getContentPane().add(comenzar);
comenzar.setSize(100,50);
comenzar.setLocation(450,150);
this.getContentPane().add(reiniciar);
reiniciar.setSize(100,50);
reiniciar.setLocation(450,250);
comenzar.setToolTipText( "Presiona para comenzar" );
reiniciar.setToolTipText( "Presiona para reiniciar" );
//oyente
comenzar.addActionListener(this);
reiniciar.addActionListener(this);
this.setTitle("LABERINTO");
this.setSize(600,500);
//llamo metodo
iniciar();
label[0].setLocation(50,50);label[1].setLocation(100,50);label[2].setLocation(150,50);
label[3].setLocation(150,100);label[4].setLocation(150,150);label[5].setLocation(150,200);
label[6].setLocation(150,250);label[7].setLocation(150,300);label[8].setLocation(150,350);
label[9].setLocation(200,350);label[10].setLocation(250,350);label[11].setLocation(250,300);
label[12].setLocation(250,250);label[13].setLocation(250,200);label[14].setLocation(250,150);
label[15].setLocation(250,100);label[16].setLocation(250,50);label[17].setLocation(300,50);
label[18].setLocation(350,50);label[19].setLocation(350,100);label[20].setLocation(350,150);
label[21].setLocation(350,200);label[22].setLocation(350,250);label[23].setLocation(350,300);
label[24].setLocation(350,350);
label1[0].setLocation(200,50);label1[1].setLocation(50,100);label1[2].setLocation(100,100);
label1[3].setLocation(200,100);label1[4].setLocation(300,100);label1[5].setLocation(50,150);
label1[6].setLocation(100,150);label1[7].setLocation(200,150);label1[8].setLocation(300,150);
label1[9].setLocation(50,200);label1[10].setLocation(100,200);label1[11].setLocation(200,200);
label1[12].setLocation(300,200);label1[13].setLocation(50,250);label1[14].setLocation(100,250);
label1[15].setLocation(200,250);label1[16].setLocation(300,250);label1[17].setLocation(50,300);
label1[18].setLocation(100,300);label1[19].setLocation(200,300);label1[20].setLocation(300,300);
label1[21].setLocation(50,350); label1[22].setLocation(100,350);label1[23].setLocation(300,350);
label1[24].setLocation(300,350);
addWindowListener(new cerrar());
}
public void iniciar(){
for(int i=0;i<25;i++){
this.getContentPane().add(label);label.setSize(50,50);
label.setIcon(null);
label.setBackground(java.awt.Color.black);
label.setOpaque(true);label.setForeground(Color.white);
label.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
this.getContentPane().add(label1);label1.setSize(50,50);
label1.setBackground(java.awt.Color.red);
label1.setOpaque(true);label1.setForeground(Color.white);
label1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
label1.setIcon(ladrillo);
}
}
public void actionPerformed(ActionEvent e){
/**Evento del boton que invoca al metodo empezar()*/
if(e.getSource()==comenzar){
comenzar.setEnabled(false);
hilo= new MiHilo();
hilo.start();
}
if(e.getSource()==reiniciar){
comenzar.setEnabled(true);
hilo.stop();
iniciar();
}
}
class cerrar extends WindowAdapter{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
class MiHilo extends Thread {
int i;
public void run() {
try{
while(i<25){
for(i=0;i<25;i++){
Thread.sleep(500);
label.setIcon(raton);
if(i>0)
label[i-1].setIcon(null);
}
}
JOptionPane.showMessageDialog(null,"Felicidades el Raton llego al final del camino");
}catch(Exception er){
System.out.println(er);
}
}
}
public static void main(String[] args)
{
new Laberinto();
}
}