确定按下了哪个按钮

时间:2014-03-20 10:42:06

标签: java user-interface

我正在尝试构建一个具有大量按钮(JButton)/下拉项(JMenuItem)的GUI,当按下包含字母的每个按钮时,相关的字母将被添加到标签中。

我无法确定按下了哪个按钮。您能否告诉我如何执行此操作?

代码:

 private void dodajCrko(java.awt.event.ActionEvent evt) {                           
    jlStatus.setText(jlStatus.getText() + evt.getSource()/* what to add here?*/);
}

3 个答案:

答案 0 :(得分:1)

我认为你需要这个

((Button)actionEvent.getSource()).getLabel()

这将为您提供单击按钮的标签。您需要将Source类型转换为Button,如(Button)actionEvent.getSource()

您的代码应为

private void dodajCrko(java.awt.event.ActionEvent evt) {                           
    jlStatus.setText(jlStatus.getText() + 
    ((Button)actionEvent.getSource()).getLabel());
}

正如@Anto所说,如果你使用任何切换按钮,你应该使用actionEvent.getActionCommand()因为命令字符串会识别预期的动作。

答案 1 :(得分:1)

我会使用getActionCommand()方法:

private void dodajCrko(java.awt.event.ActionEvent evt) {                           
    jlStatus.setText(jlStatus.getText() + actionEvent.getActionCommand());
}

答案 2 :(得分:0)

在我看来,我觉得这样做效果更好。

private JButton button1;

然后使用它。

    button1.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            System.out.println("Button 1 was presseed");
        }
    });

希望这会有所帮助,卢克。