【问题标题】:Accessing JButton that was clicked from ActionPerformed?访问从 ActionPerformed 单击的 JButton?
【发布时间】:2012-10-31 02:38:28
【问题描述】:

我有这个大学作业,我必须在界面中有 5 个按钮,当单击按钮时,我必须对那个按钮执行操作。但是当我在 actionPerformed() 中使用“this”时,它并不是指“被点击的按钮”,我无法锻炼它实际指的是什么。

所以:

  1. “this”在 ActionPerformed() 操作处理程序中指的是什么?
  2. 通过使用“e.getActionCommand()”,在不使用一堆 if 语句的情况下,使用“被点击”按钮做某事的任何好方法?

【问题讨论】:

  • (JButton)AdtionEvent#getSource
  • 避免“switchboard”处理程序方法的一种方法——给每个JButton它自己的ActionListener,如果它的代码很短,可能是一个匿名的内部监听器。
  • actionPerformed() 中的“this”指的是动作监听器本身。

标签: java swing jbutton actionlistener


【解决方案1】:

可以使用EventObject#getSource(),由ActionEvent继承。

@Override
public void actionPerformed(ActionEvent e) { 
    JButton source = (JButton) e.getSource();
    ...
}

在 ActionListener 中,this 指的是 ActionListener 对象本身,而不是源对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 2017-02-13
    • 2022-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多