Java ActionListener没有拿起按钮

时间:2016-04-17 21:38:22

标签: java swing button actionlistener

这是带有动作监听器的按钮的代码:

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);

出于某种原因,它甚至不会打印出这条线"你好"所以我知道动作聆听者没有被召唤,我不知道为什么?请帮忙:)

2 个答案:

答案 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();
            }
        });