如何找出点击了哪个按钮?
Posted
技术标签:
【中文标题】如何找出点击了哪个按钮?【英文标题】:How can I find out which button was clicked? 【发布时间】:2011-11-22 12:34:56 【问题描述】:我的按钮工作正常,我是每个按钮的监听器,如下所示:
for(int i = 0; i <= 25; ++i)
buttons[i] = new Button(Character.toString(letters[i]));
buttons[i].addActionListener(actionListener);
panel1.add(buttons[i]);
在这里你可以看到监听器被调用,我想知道我点击的是哪个按钮。有没有办法做到这一点?
ActionListener actionListener = new ActionListener()
public void actionPerformed(ActionEvent actionEvent)
System.out.println(actionEvent.getSource());
;
我需要一些方法来找到数组中的按钮。
【问题讨论】:
首先将源转换为按钮,然后获取标签 ((Button)actionEvent.getSource()).getLabel() ... 【参考方案1】:ActionEvent 有一个 getActionCommand() 方法,它将获取 JButton 的 actionCommand 字符串。这通常也是文本(对于 JButtons)。
【讨论】:
+1 用于提及getActionCommand()
,但尤其是对于“这通常它也是文本”(强调我的)。【参考方案2】:
试试这个
ActionListener actionListener = new ActionListener()
public void actionPerformed(ActionEvent actionEvent)
System.out.println(actionEvent.getActionCommand());
;
【讨论】:
哇非常感谢你 java 确实有很多东西但是有些功能很棒 试试this(然后点击ActionEvent
继承的类的链接,并检查这些类的方法)。 JavaDocs - 对于这类东西非常方便。 ;)【参考方案3】:
为了得到标签,试试这个。
ActionListener actionListener = new ActionListener()
public void actionPerformed(ActionEvent actionEvent)
JButton button = (JButton)actionEvent.getSource();
String label = button.getLabel(); //Deprecated
String label2 = button.getText();
;
【讨论】:
我应该在哪里添加此代码?我希望它适用于我的所有按钮。【参考方案4】:private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)
l1.setText("");//name of level what you want
t1.setText(null);//text field what you want
t2.setText(null);//text field what you want
【讨论】:
不知道你在回答谁的问题,不过好像不是魔剑士问的问题。以上是关于如何找出点击了哪个按钮?的主要内容,如果未能解决你的问题,请参考以下文章