我最近在Java中学到了很多东西,但有些东西真的让我烦恼。当程序涉及一个构造函数时,我学会了/如何使用ActionListener,例如,
public class test extends JFrame implements ActionListener {
JButton button;
public test
{
setLayout(null);
setSize(1920,1080);
setTitle("test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button = new JButton("");
button.setBounds(x,x,x,x);
button.AddActionListener(this); //What can replace the this parameter here.
button.setVisible(true);
add(button);
}
public static void main(String[] args) {
test testprogram = new test();
test.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent clickevent) {
if (clickevent.GetSource() == button) {
//DoSomething
}
}
答案 0 :(得分:1)
它可以是任何实现ActionListener
。
您可能需要考虑不使用JFrame
工具ActionListener
:这意味着
actionPerformed
的类'接口的一部分;但你可能不希望其他类直接调用它。另一种方法是创建一个button
特定的动作监听器:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent clickevent) {
// Don't need to check if it is from button, nothing else
// could have created the event.
}
});
并从implements ActionListener
类中删除test
。
答案 1 :(得分:0)
这是将要处理ActionEvent
的类的实例。
将事件处理程序类的实例注册为一个侦听器 或更多组件。例如:
someComponent.addActionListener(instanceOfMyClass);