Como mantener seleccionado un boton en java?
Polfed:
Seleccionado en referencia a presionar el botón. Especificar tal vez un poco más lo que se requiera. Saludos
Respuestas
Respuesta dada por:
1
Una manera de mantener presionado un botón o en constante ejecución requiere el uso de eventos. Dentro del evento se podría crear un bucle que solo sea liberado o pausado por una condición o estado al presionar el botón.
Ejercicio demostrativo:
- Para este ejemplo se ha usado 2 botones, el primero se presiona y se mantiene en proceso, es decir seleccionado o presionado de forma continua, además si se presiona nuevamente el primer botón llamado Iniciar no permitirá ejecutar ningún proceso ya que se encuentra presionado. Para liberarlo usamos el segundo botón llamado Detener que destruye el proceso y así permitir ejecutar nuevamente el botón Iniciar.
class EventoBoton{
static int suma = 0;
public static boolean estado=true;
public static Thread h = null;
public static void main(String[] args) {
JFrame v = new JFrame();
v.setLayout(null);
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.setSize(500, 400);
v.setLocationRelativeTo(null);
v.setVisible(true);
JButton boton = new JButton();
boton.setText("Iniciar");
boton.setSize(100,35);
boton.setLocation(130,50);
JButton detener = new JButton();
detener.setText("Detener");
detener.setSize(100,35);
detener.setLocation(250,50);
//Crear evento Boton al Presionar
MouseAdapter evento1 = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
if(estado==true){
System.out.println("# Iniciado");
h = new Thread(new Runnable() {
@Override
public void run() {
while(true){
try{
System.out.println(suma);
suma = suma+1;
Thread.sleep(1000);
}catch(InterruptedException ex){}
}
}
});
h.start();
estado = false;
}
}
};
MouseAdapter evento2 = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
estado = true;
h.stop();
System.out.println("# Detenido");
}
};
//Agregar Eventos Botones
boton.addMouseListener(evento1);
detener.addMouseListener(evento2);
//Añadir Botones a la Ventana
v.add(boton);
v.add(detener);
}
}
Nota: Archivo Adjunto del Ejercicio.
Ejercicio demostrativo:
- Para este ejemplo se ha usado 2 botones, el primero se presiona y se mantiene en proceso, es decir seleccionado o presionado de forma continua, además si se presiona nuevamente el primer botón llamado Iniciar no permitirá ejecutar ningún proceso ya que se encuentra presionado. Para liberarlo usamos el segundo botón llamado Detener que destruye el proceso y así permitir ejecutar nuevamente el botón Iniciar.
class EventoBoton{
static int suma = 0;
public static boolean estado=true;
public static Thread h = null;
public static void main(String[] args) {
JFrame v = new JFrame();
v.setLayout(null);
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.setSize(500, 400);
v.setLocationRelativeTo(null);
v.setVisible(true);
JButton boton = new JButton();
boton.setText("Iniciar");
boton.setSize(100,35);
boton.setLocation(130,50);
JButton detener = new JButton();
detener.setText("Detener");
detener.setSize(100,35);
detener.setLocation(250,50);
//Crear evento Boton al Presionar
MouseAdapter evento1 = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
if(estado==true){
System.out.println("# Iniciado");
h = new Thread(new Runnable() {
@Override
public void run() {
while(true){
try{
System.out.println(suma);
suma = suma+1;
Thread.sleep(1000);
}catch(InterruptedException ex){}
}
}
});
h.start();
estado = false;
}
}
};
MouseAdapter evento2 = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
estado = true;
h.stop();
System.out.println("# Detenido");
}
};
//Agregar Eventos Botones
boton.addMouseListener(evento1);
detener.addMouseListener(evento2);
//Añadir Botones a la Ventana
v.add(boton);
v.add(detener);
}
}
Nota: Archivo Adjunto del Ejercicio.
Adjuntos:
Preguntas similares
hace 6 años
hace 6 años
hace 9 años
hace 9 años
hace 9 años
hace 9 años