我正在尝试构建一个具有大量按钮(JButton)/下拉项(JMenuItem)的GUI,当按下包含字母的每个按钮时,相关的字母将被添加到标签中。
我无法确定按下了哪个按钮。您能否告诉我如何执行此操作?
private void dodajCrko(java.awt.event.ActionEvent evt) {
jlStatus.setText(jlStatus.getText() + evt.getSource()/* what to add here?*/);
}
答案 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");
}
});
希望这会有所帮助,卢克。