Search code examples
javaswingjbuttonactionlistener

Two events on a button


How can I make more than one event on a button?

public JButton getNumero1() {
    numero1Button = new JButton();
    numero1Button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ic_images/bt_n1.png")));
    ActionListener monitorador = new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

            entradaNumero1.setText(("1"));
            entradaNumero1.setEnabled(false);

            entradaNumero2.setText(("2"));
            entradaNumero2.setEnabled(false);


        }
    };

    numero1Button.addActionListener(monitorador);
    return numero1Button;
}

I want to do with the first being a JTextField, and then another!

Thank you!


Solution

  • You can add any number of action listeners to a button

    Java 7 way

    public JButton getNumero1() {
        numero1Button = new JButton();
        numero1Button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ic_images/bt_n1.png")));
        ActionListener monitorador1 = new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
              entradaNumero1.setText(("1"));
              entradaNumero1.setEnabled(false);
            }
         };
         numero1Button.addActionListener(monitorador1);
         ActionListener monitorador2 = new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
              entradaNumero2.setText(("2"));
              entradaNumero2.setEnabled(false);
            }
         };
         numero1Button.addActionListener(monitorador2);
         return numero1Button;
     }
    

    Java 8 way

    public JButton getNumero1() {
         numero1Button = new JButton();
         numero1Button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ic_images/bt_n1.png")));
         ActionListener monitorador1 = e -> {
            entradaNumero1.setText(("1"));
            entradaNumero1.setEnabled(false);
         };
         numero1Button.addActionListener(monitorador1);
         ActionListener monitorador2 = e -> {
            entradaNumero1.setText(("1"));
            entradaNumero1.setEnabled(false);
         };
         numero1Button.addActionListener(monitorador2);
         return numero1Button;
     }