按钮上有两个事件

时间:2016-05-15 15:34:11

标签: java swing jbutton actionlistener

如何在按钮上创建多个事件?

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;
}

我想第一个是JTextField,然后是另一个!

谢谢!

2 个答案:

答案 0 :(得分:3)

  

如何在按钮上创建多个事件?

因为你被允许,没有什么能阻止你:

  • 将多个ActionListener添加到JButton
  • 删除ActionListeners
  • 交换它们(通过添加和删除)......
  • 让听众做不止一件事......

请注意,目前还不清楚:

  

我想第一个是JTextField,然后是另一个!

答案 1 :(得分:2)

您可以向按钮添加任意数量的动作侦听器

Java 7方式

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方式

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;
 }