Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con Jbutton en applet

Estas en el tema de Problema con Jbutton en applet en el foro de Java en Foros del Web. Hola Estoy iniciando a programar en Java, pero me dejaron un proyecto en la escuela en este Lenguaje y estoy teniendo problemas con la implementacion. ...
  #1 (permalink)  
Antiguo 09/07/2010, 21:16
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Problema con Jbutton en applet

Hola

Estoy iniciando a programar en Java, pero me dejaron un proyecto en la escuela en este Lenguaje y estoy teniendo problemas con la implementacion.

Cree un applet Que me dibuja un tablero de ajedrez, lo hago un GridLayout y agrego los botones, pero no me esta respetando las acciones cuando le doy clic a alguno de los botones,.

Agrego parte del codigo, si alguien me puede ayudar en que estoy haciendo mal o que me hace falta se los agradeceria muchisimo ya que he intentado varias formas y no me hace nada cuando le doy clic al boton.

Gracias.

import java.awt.*;
import java.applet.Applet;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;



public class Tablero extends Applet implements ActionListener {
public JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15 ,b16,b17;
public JButton b18,b19,b20,b21,b22,b23,b24,b25,b26,b27,b28,b29,b3 0,b31,b32;
public JButton b33,b34,b35,b36,b37,b38,b39,b40,b41,b42,b43,b44,b4 5,b46,b47;
public JButton b48,b49,b50,b51,b52,b53,b54,b55,b56,b57,b58,b59,b6 0,b61,b62;
public JButton b63,b64;
public Panel botones;
public Button acabar;
public Button empezar;

public Tablero() {

// titulo, estilo, tamaño y posición iniciales


// ventana centrada
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int ancho=300, alto=350;
setSize(ancho, alto);
setLocation(d.width/2-ancho/2,d.height/2-alto/2);

// preparamos el layout de la ventana
setLayout(new BorderLayout(20,20));

// ponemos la etiqueta
Font fuente = new Font("Arial", Font.BOLD, 20);
Label etiq = new Label("J U E G O 8 R E I N A S ", Label.CENTER);
etiq.setFont(fuente);
etiq.setForeground(new Color(100,0,50));

add(etiq, BorderLayout.NORTH);

// preparamos el tablero; será el panel central
Panel tablero = new Panel();
tablero.setLayout(new GridLayout(8,8));


JButton b1 = new JButton(" ");
b1.setBackground(Color.white);
b1.setActionCommand("boton1");
b1.addActionListener(this);
tablero.add(b1);


JButton b2 = new JButton(" ");
b2.setBackground(Color.black);
b2.addActionListener(this);
tablero.add(b2);

JButton b3 = new JButton(" ");
b3.setBackground(Color.white);
b3.addActionListener(this);
tablero.add(b3);
.
.
.
.


// lo ponemos en el centro
add(tablero,BorderLayout.CENTER);

// tablero para los botones
Panel botones = new Panel();
JButton empezar = new JButton("Empezar");
JButton acabar = new JButton("Acabar");
// no dejamos que pulsen acabar si no se está jugando
//acabar.setEnabled(false);

botones.add(empezar);
botones.add(acabar);

add(botones, BorderLayout.SOUTH);


// paneles para dejar margen a la izquierda y a la derecha
Panel izq = new Panel();
Panel der = new Panel();
add(izq,BorderLayout.EAST);
add(der,BorderLayout.WEST);


//aqui es donde no me respeta la action

}

public void actionPerformed(ActionEvent ev) {
if (ev.getSource()== b1)
b1.setIcon(new ImageIcon(Tablero.class.getResource("rein.jpg")));


}
}
  #2 (permalink)  
Antiguo 09/07/2010, 21:57
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Problema con Jbutton en applet

¿Qué quiere decir "no me respeta las acciones"?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 09/07/2010, 23:12
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema con Jbutton en applet

se supone que cuando le doy clic a cualquier boton de mi tablero en esta parte del codigo
public void actionPerformed(ActionEvent ev) {
if (ev.getSource()== b1)
b1.setIcon(new ImageIcon(Tablero.class.getResource("rein.jpg")));



}
compara a que boton le di clic y va a realizar la accion que le indique, pero no lo hace, no se si lo estoy implementando mal o dado que los botones estan denttro de un GridLayout tengo que implememntar el metodo listener de otra manera.
  #4 (permalink)  
Antiguo 10/07/2010, 10:58
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Problema con Jbutton en applet

Es difícil saber qué está pasando, hay muchas cosas que no me cuadran.

Si extiende de applet, se supone que es un applet y se ejecuta en un navegador. En vez de hacer el código en el constructor de la clase, deberías hacerlo en el método init() o start() heredado de la clase Applet.

Tampoco tiene mucho sentido en un applet lo del tamaño de pantalla y ventana, ya que el applet ocupará lo que la página web html le reserve y no tienes tú que darle tamaño.

El fichero de imagen que se supone que debe poner en el botón... ¿dónde lo tienes?. La forma de cargarlo es muy distinta dependiendo de si está dentro de un jar, es un fichero normal o estás ejecutando un applet.

No tiene nada que ver con el posible problema, pero en vez de b1, b2, b3, sería más sencillo hacer un array JButton [] b = new JButton[64] y luego usar bucles para hacer las cosas, ahorrarías repetir las cosas 64 veces.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 11/07/2010, 23:58
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema con Jbutton en applet

Ya puse el codigo dentro de la clase init() y los botones con arreglo, pero al darle clic a cualquiera de ellos sigue sin ejecutar las lineas de codigo que le pongo,

La imagen esta dentro de la misma carpeta donde esta guardado el archivo de java.

De verdad que no encuentro por que no lo hace ya ya tengo que entregar este trabajo en la escuela, agradeceia mucho cualquier ayuda que me puedan proporcionar.

Gracias.

Etiquetas: applet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:54.