这是带有动作监听器的按钮的代码:
NSStoryboard *mainStoryboard = [NSStoryboard storyboardWithName:@"Main" bundle:nil];
MyWindowController *initialController = (MyWindowController *)[mainStoryboard instantiateControllerWithIdentifier:@"myWindowController"];
[initialController showWindow:self];
[initialController.window makeKeyAndOrderFront:self];
这是我的动作监听器中的代码:
JButton btnAddChild = new JButton("Add Child");
btnAddChild.addActionListener(this.controller);
formPanel.add(btnAddChild);
出于某种原因,它甚至不会打印出这条线"你好"所以我知道动作聆听者没有被召唤,我不知道为什么?请帮忙:)
答案 0 :(得分:0)
而不是使用
this.controller
(不确定它是如何声明或初始化的)尝试创建一个全新的动作侦听器作为参数,只是为了测试它。例如,如果您将动作侦听器定义为
class CustomActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
System.out.println("Hello");
}
}
然后您可以将动作侦听器添加到按钮中,如此
btnAddChild.addActionListener(new CustomActionListener());
正如其他答案中所提到的,这可能是您的条件声明的问题。尝试在动作监听器中首先放置一个print语句。
答案 1 :(得分:0)
这是一个带有ActionListener的基本退出按钮。使用多个侦听器时,应按如下方式放置@Override注释。您甚至可以覆盖您创建的第一个ActionListener。
JButton cancelButton = new JButton("Exit");
cancelButton.setActionCommand("Exit");
windowPane.add(cancelButton);
cancelButton.setBounds(0, 0, 1300, 900);
cancelButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent x) {
dispose();
}
});