所以我有一些按钮:
static JButton rpsls = new JButton(new ImageIcon(rpslsscaled));
其中rpslsscaled是一些图像。所以我试着拿到按钮
public class SomeClass implements ActionListener{
...
static JButton rpsls = new JButton(new ImageIcon(rpslsscaled));
...
class SomeInnerClass implements ActionListener{
...
public void actionPerformed(ActionEvent e){
if (e.getSource() == rpsls) {
JOptionPane.showMessageDialog(null,"You clicked rpsls!");
}
}
}
...
public void actionPerformed(ActionEvent e){
...
}
}
当我按下按钮rpsls
时,没有任何反应。它不会打印“你点击了rpsls!”。
这是因为2 actionPerformed
方法吗?
答案 0 :(得分:1)
问题:
解决方案:
addActionListener(...)
来响应,请将ActionListener添加到JButton。答案 1 :(得分:1)
你错过了用听众设置按钮:
SomeInnerClass instance = new SomeInnerClass();
rpsls.adddActionListener(instance);//Using the inner class
或
rpsls.adddActionListener(this);//for the main Class
答案 2 :(得分:1)
您可能没有在外部类的按钮上添加ActionListener。 这样做:
rpsls.adddActionListener(new SomeInnerClass());
答案 3 :(得分:1)
设置一个在你的按钮上执行的动作,这将在你点击时捕获事件e并且你可以像任何其他方法一样定义你的actionPerfomed,或者你可以将你的动作定义为