2012-01-04 74 views
4

我创建了一个需要一些简单输入的gui应用程序,但是,当我单击JFrame中的按钮时,我正在使用的actionPerformed方法未被触发/ )。我似乎无法弄清楚我已经错过了什么(如果有帮助,新的Java)。感谢您的任何帮助/建议。Java:actionPerformed方法在点击按钮时不会触发

这里是所有代码:

//gui class 
public class guiUser extends JFrame implements ActionListener { 

private JButton buttonClose_; 
private final int frameWidth = 288; 
private final int frameHeight = 263; 
private final int closeX = 188; 
private final int closeY = 195; 
private final int closeWidth = 75; 
private final int closeHeight = 25; 

public guiUser() { 

    setTitle("Create a User"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setLayout(null); 
    setSize(frameWidth, frameHeight); 
    setResizable(false); 

    buttonClose_ = new JButton("Exit"); 
    buttonClose_.setLayout(null); 
    buttonClose_.setSize(closeWidth, closeHeight); 
    buttonClose_.setBounds(closeX, closeY, closeWidth, closeHeight); 
    buttonClose_.setLocation(closeX, closeY); 
    add(buttonClose_); 

} 

@Override 
public void actionPerformed(ActionEvent e) { 
    if(e.getSource() == buttonClose_) { 
     int result = JOptionPane.showConfirmDialog(null, "Are you sure you wish to exit  user creation?"); 
     if(result == JOptionPane.YES_OPTION) { 
      System.exit(0); 
     } 
    } 
} 

//tests the gui 
public class test { 
    public static void main(String args[]) { 
     guiUser gUser_ = new guiUser(); 
     gUser_.setVisible(true); 
    } 
} 
+1

请学习java命名约定并坚持到他们 – kleopatra 2012-01-04 11:31:33

回答

9

你需要一个动作侦听器添加到您的按钮组件这样

closeButton.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(java.awt.event.ActionEvent evt) { 
     closeButtonActionPerformed(evt); 
    } 
}); 

private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    dispose(); 
} 
+0

我得到一个错误,说我必须实现未使用的方法,这很好,但接下来有两个相同的方法?一个在构造函数之外,另一个由动作监听器设置。对于noob问题抱歉。 – Ari 2012-01-04 01:07:18

+0

您可能不希望将ActionListener实现为类的一部分。我将删除该实现部分,然后在我的代码示例中声明动作侦听器。我从一个正在运行的应用程序中获取它。让我知道它是否有效,或者您仍然收到错误消息。 – Logan 2012-01-04 01:15:27

+0

工程很好,非常感谢多位队友:) – Ari 2012-01-04 01:16:28

5

您必须添加一个“addActionListener方法,对您的按钮

+0

感谢您的回复,您是否介意发布一个小例子?谢谢 – Ari 2012-01-04 00:55:09

+0

非常感谢:) – Ari 2012-01-04 01:16:43

相关问题