2012-01-04 46 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

相關問題