actionPerformed使用两个相同的按钮变量

时间:2014-04-24 02:46:23

标签: java user-interface jbutton

JPanel btns = new JPanel();
btns.add(new JButton("btn1"));
btns.add(new JButton("btn2"));
btns.setLayout((new FlowLayout(FlowLayout.TRAILING)));
southPanel.add(btns);

你好,上面,我提供了代码。如何将actionPerformed方法设置为某个按钮。例如,当我单击btn1时,它将打印出单击按钮1。当我点击btn2时,它会打印出来点击按钮2。

感谢。

3 个答案:

答案 0 :(得分:0)

为按钮创建对象实例..

JButton button1 = new JButton("btn1");
JButton button1 = new JButton("btn1");

然后将它们添加到面板

btns.add(button1 );
btns.add(button2 );

将一个动作命令添加到按钮:

button1.setActionCommand("button1");
button2.setActionCommand("button2");\

创建一个实现ActionListener

的类
private class Controller implements ActionListener

在actionPerformed中获取actionCommand并使用相应的按钮进行检查:

  @Override
        public void actionPerformed(ActionEvent evt) 
        {
            String actionCommand = evt.getActionCommand(); //get the actionCommand and pass it to String actionCommand

            if(actionCommand.equals("button1"))
                           //button 1 clicked
            else if(actionCommand.equals("button2"))
                          //button 1 clicked
}

答案 1 :(得分:0)

您只需向两个按钮添加两个不同的ActionListener。

btn1.addActionListener(new ActionListener(){.....});
btn2.addActionListener(new ActionListener(){.....});

答案 2 :(得分:0)

您需要设置按钮,.add(new JButton("btn1"))不允许您轻松访问这些按钮。

将您的按钮声明为变量,如JButton button = new JButton("btn1")中所示。然后,调用他们的.addActionListener(...)方法来定义要使用的actionListener。

假设您需要两个不同的 actionListeners,您可以使用以下内容。

button.addActionListener(new ActionListener() { 
        public void actionPerformed() {...} 
    } 
);

如果您在拥有actionListener后不关心按钮,则可以使用临时变量:

JButton temp = new JButton("btn1");
temp.addActionListener(...);
btns.add(temp); //adds btn1

temp = new JButton("btn2");
temp.addActionListener(...);
btns.add(temp); //adds btn2

最后,如果要使用一个 actionListener来处理这两个按钮,请使用.setActionCommand()方法为每个按钮指定唯一的命令。然后,在actionPerformed中,使用if语句并检查e.getActionCommand.equals("myButton'sAction")。 例如:

JButton temp = new JButton("btn1");
temp.addActionListener(this);
temp.setActionCommand("Btn1");
btns.add(temp); //btn1

temp = new JButton("btn2");
temp.addActionListener(this);
temp.setActionCommand("Btn2");
btns.add(temp); //btn2

public void actionPerformed(ActionEvent e) {
    String command = e.getActionCommand();
    if (e.getActionCommand.equals("Btn1"))
        System.out.println("Button 1 pressed");
    if (e.getActionCommand.equals("Btn2"))
        System.out.println("Button 2 pressed");
}