2017-05-22 29 views
0

我試圖使用NetBeans的設計模式創建JForm,然後在源模式下對其進行開發。我的表單中有兩個按鈕,我想檢查generateNumber按鈕是否在makeGuess按鈕執行任務之前單擊。這裏是相關的代碼行。無法檢查是否使用NetBeans單擊了JButton

private void generateNumberActionPerformed(java.awt.event.ActionEvent evt) {            
     // TODO add your handling code here: 

    }            

    private void makeGuessActionPerformed(java.awt.event.ActionEvent evt) {           
     // TODO add your handling code here: 

     try { 
      if (!generateNumber.getModel().isPressed()) { 
       throw new GameNotStartedException(); 
      } 
     } catch (GameNotStartedException ex) { 
      System.out.println(ex); 
      JOptionPane.showMessageDialog(this, "Generate a number first"); 
     } 

    } 

我的問題是程序總是落入GameNotStartedException,如果我點擊generateNumber按鈕,或者我沒有什麼關係。任何人都可以幫助我嗎?

回答

1

我覺得問題在於generateNumber.getModel().isPressed()本身的用法。這會告訴你該按鈕當前是否被按下。

當你擁有了它的方法makeGuessActionPerformed它是這樣的:

  • 你按下按鈕makeGuess
  • makeGuessActionPerformed執行
  • 的方法,該方法的一部分,你是否按鈕generateNumber (這是不正確的,因爲你點擊了按鈕makeGuess)

你可以例如使用布爾值來跟蹤狀態。布爾值的值反映按鈕generateNumbers是否已被按下。

  • 單擊按鈕generateNumbers會將布爾值設置爲true。
  • 在方法makeGuessActionPerformed中,您可以檢查布爾值的值。如果爲false,則拋出異常。否則繼續執行。
+0

是的,我已經切換到該布爾方法,它工作正常,但我想知道爲什麼'isPressed()'方法不起作用。 –

+1

只有當*按鈕被按下時,它纔會工作。 –

+0

我認爲我的程序有一個有效的方法,但我不知道它是什麼。無論如何,謝謝你的時間和興趣:) –

相關問題