a ver cómo lo soluciono....

beapsan
20 de Febrero del 2006
Hola!! Tengo una aplicación con dos botones: uno de start y otro stop. Cuando pulso start salta a una clase nueva que gestiona la acción del botón. Lo que quiero es que el botón de stop esté inicialmente desactivado y que al pulsar start el botón de stop se active, es decir, que se pueda pulsar. El problema que tengo es que desde esa clase no me conoce el botón de stop; ¿alguien sabe cómo puedo hacerlo???
Muchas gracias

NoDo
20 de Febrero del 2006
Hola!
Creo que lo mejor que puedes hacer es usar JToggleButtons. Con esto seguro que lo verás más claro. Los metes en un ButtonGroup y ya "está".

Espero haberte ayudado.
Un saludo.

beapsan
20 de Febrero del 2006
Pero... ahora desde stop consigo desactivar el boton de stop asi:
JButton boton = (JButton) e.getSource();
boton.setEnabled(false); //desactivar el boton de desconectar
pero cómo consigo en ese momento que se active el de start???
Ah!! Start y Stop son JButton, dentro de un ButtonGroup, porque JToggleButtons no me lo reconocía....
Muchas gracias

NoDo
20 de Febrero del 2006
Hola!
Hombre, no se muy bien lo que quieres hacer, pero puedes hacer que el boton start.setEnabled(true) y llamar al método que hace las operaciones del boton Start.

botonStart.setEnabled(true);
botonStop.setEnabled(false);
botonStart.metodoOperacional();

A ver si así va. Venga, un saludo.


beapsan
20 de Febrero del 2006
No he entendido muy bien lo que me quieres decir.... yo es que boton.setEnable(false) lo hago desde la clase que gestiona el actionListener, y como está en una clase diferente a la ventana que contiene los botones, ahí no me reconoce el boton que no haya sido pulsado...

chuidiang
20 de Febrero del 2006
Hola:

Hay varias soluciones dependiendo de lo estricto que seas.

Una es ponerle a la clase ActionListener del start un método para que reciba el botón de stop y se lo guarde. Cuando hagas el actionPerformed(), ya tienes accesible el boton de stop.

Otra opcion es, por ejemplo, desde el panel que contiene los botones (suponiendo que sea el mismo) añadir un nuevo ActionListener anonimo al boton de start que se encargue unicamente de deshabilitar el boton de stop

class MiPanel extends JPanel
{
JButton start = new JButton ("start");
JButton stop = new JButton ("stop");

public MiPanel
{
...
start.addActionListener (new ActionListener(){
public void actionPerformed (...)
{
stop.setEnabled(true);
});
...
}
}

Se bueno

beapsan
20 de Febrero del 2006
Perfecto!!!! Muchas gracias!!!