¿Cómo puedo deshabilitar los botones con la prensa de un botón, y cuando la tarea que el botón que ha sido pulsado fue asignado a la que se ha hecho, a continuación, quiero que todos los botones para ser habilitado. por ejemplo;

UpButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DownButton.setEnabled(false);
        LeftButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Up Button");

    }
});
DownButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        UpButton.setEnabled(false);
        LeftButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Down Button");


    }
});
LeftButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DownButton.setEnabled(false);
        UpButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Left Button");

    }
});
RightButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DownButton.setEnabled(false);
        LeftButton.setEnabled(false);
        UpButton.setEnabled(false);
        System.out.printline("Right Button");

    }
});

He tratado de hacerlo pero no funciona. Lo que yo quiero es, por ejemplo, mi Upbutton es imprimir («botón»), de modo que cuando el usuario pulsa este botón, quiero que todos los otros botones a ser deshabilitado hasta que se ha terminado de hacer el comando que se supone que debe hacer, en este caso, imprimir un texto, pero más adelante iré añadiendo cosas como la adición de dos entradas de usuario por ejemplo, voy a tener un botón que va a pedir al usuario que escriba el número 1 y, a continuación, el número 2 y, a continuación, el equipo se suman y durante este proceso, quiero que todos los botones de movilidad esperar que el que ha hecho clic, hasta que el usuario se ha dado de todos los números y el equipo ha dado la salida.

Espero que me he explicado yo bien, si no, por favor hágamelo saber y voy a intentar mi mejor esfuerzo para dar más información. Gracias de antemano.

  • sólo una pregunta, por favor esta pregunta es acerca de ….
  • después de punto no es posible utilizar el código de etiqueta (nunca con las manos arriba, tal vez alguien hacer eso con formato html)
  • uso JRadioButtons añadido a ButtonGroup, con un poco de esfuerzo es posible mediante el uso de JToggleButtons
  • sí, exactamente.
  • Usted necesita aprender acerca de la SwingWorker de la API. Usted puede desactivar los botones y el kick off del trabajador. Cuando se hace a continuación, puede volver a habilitar los botones.
  • No estoy seguro de que un SwingWorker es lo que él quiere, ya que sus procesos de parecer trivial y rápida, si estoy interpretando correctamente. Casi suena como si él quiere lanzar un JOptionPane o de otro JDialog modal, pero no estoy 100% seguro de esto.
  • mi pensamiento era que el OP quería hacer algo de tarea en segundo plano y no permitir que el otro se ejecute hasta que se termine. Tal vez usted está en lo correcto. La pregunta es poco clara…
  • Por favor, aprender común Java convenciones de nomenclatura (en particular en el caso de que se utiliza para los nombres) para la clase, el método de & nombres de atributo & utilizar de manera coherente.

InformationsquelleAutor John Smith | 2014-01-18

5 Comentarios

  1. 1

    Cómo sobre el uso de Command objetos? Cada objeto de comando podría tener execute() y canExecute() en los métodos de menos. Entonces;

    btnA.setEnabled( cmdA.canExecute() );
    btnA.addActionListener( event-> { 
        cmdA.execute();
        btnB.setEnabled( cmdA.canExecute() );
    });
  2. 0

    Que parece derecho. Tal vez usted quiere que ellos invisible en lugar de discapacitados…

    En ese caso:

    LeftButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) {
    
    DownButton.setVisible(false);
    UpButton.setVisible(false);
    RightButton.setVisible(false);
    System.out.printline("Left Button");

    Heres un ejemplo de algo que funciona:

    private void jButtonChangeChampActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        jComboBoxPlayer.setEnabled(true);
        jComboBoxChampion.setEnabled(true);
        jButtonSelecionar.setVisible(true);
        jButtonMagias.setVisible(false);
    }
    • Hola, Rafael, tanto con mi método DownButton.setEnabled(false); y su método de DownButton.setVisible(false); se dice que los botones no se puede resolver. Quiero los botones para ser visible, pero está desactivado si un botón es presionado.
    • Son los botones declarado(private javax.el swing.JButton UpButton;)? Has importado javax.el swing.JButton? Probablemente así, ¿verdad?
  3. 0

    Lo que si usted intenta esto:

    UpButton.addActionListener( new ActionListener() {
          public void actionPerformed(ActionEvent e) {
    
        UpButtonActionPerformed(evt);
    
            }
        });
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
        DownButton.setEnabled(false);
        LeftButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Up Button");
    }

    Funciona aquí…

    • Hizo el trabajo? …
  4. 0

    Si quieres Configurar el Botón está Desactivado , puede usar el

    btnExample.setDisable(true); //Esto deshabilitará el Botón

    btnBreak.setVisible(false); //Esto hará que el botón de Desaparecer visualmente sólo.

    Espero que esta ayuda chicos.

  5. 0

    Tienes que desactivar primero los otros botones, terminar su tarea y, a continuación, habilitar los botones de nuevo.

    Por ejemplo:

    UpButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent e) {
    
            //first disable all other buttons 
            DownButton.setEnabled(false);
            LeftButton.setEnabled(false);
            RightButton.setEnabled(false);
    
            System.out.println("Up Button");
            //do rest of your tasks here. 
    
            //now enable them again
            DownButton.setEnabled(true);
            LeftButton.setEnabled(true);
            RightButton.setEnabled(true);
    
        }
    
    });

    Del mismo modo, el programa de instalación de los detectores para los otros botones.


    Espero que esto ayude!

Dejar respuesta

Please enter your comment!
Please enter your name here