botones creados dinamicamente

Jorge
11 de Octubre del 2003
Creo un grupo de cinco botones dinamicamente, i despues, segun sucedan eventos, creo mas grupos. El problema esta en que cuando pulso en uno de ellos, deberia aparecer un texto en el boton. Pero como todos se llaman igual, no se como hacerlo.

sasu
11 de Octubre del 2003
No sé si esto funcionaría...
en al actionPerformed, para cuando pulsas el botón...
si utilizas this.nombredelbotón?

Jorge
11 de Octubre del 2003
No funciona, mete el texto en el ultimo boton de la fila. He pensado que a lo mejor puedo sacar el boton, y meter otro en su sitio. Utilitzo un gridbaglayout, pero de momento no lo he conseguido.

Mario Lavarreda
11 de Octubre del 2003
No se como los estaras generando ......
pero se me hace que es algo asi......
JButton b;
for(){
b=new JButton(texto);
b.addActionListener();
add(b);
}
talvez le estas dando new a la misma variable..
cuando le das new por segunda vez a cualquier objeto... el anterior desaparece.....
deberias hacer algo asi....

for(){
JButton b=new JButton()
b.setActionCommand("Un String que te diferencie a este boton de los demas");
b.addActionListener(this);
add(b);
}
public void actionPerformed(ActionEvent evt){
Object src = evt.getSource();
if(src instance of JButton)
JButton bot= (JButton)src
Cada vez que pulse un boton te saldra la action que le seteaste... recordate que es un String y que solo te sirve para diferenciar los botones..
System.out.println(bot.getActionCommand());
}

Jorge
11 de Octubre del 2003
He pensado otra cosa.
Yo creaba 6 botones, todos con el nombre button, y hacia filas con estos 6 botones.
Si creo 6 botones, con nombres boton1, boton2, boton3, boton4, podre acceder siempre a TODOS los botones de la ultima fila creada? Creo que si, pero como soy nuevo, no estoy muy seguro...

Jorge
11 de Octubre del 2003
Lo estoy haciendo tal como dices, pero no me sirve solo saber que boton se ha pulsado, que ya lo se, sino que debo poner una etiqueta al boton pulsado, y, si el objeto desaparece al hacer un nuevo new, no puedo hacerlo. Voy a utilizar un JTable, que tambien me va a servir. Muchas gracias!