无法检查是否使用NetBeans单击了JButton

时间:2017-05-22 18:47:37

标签: java netbeans jbutton

我正在尝试使用NetBeans的设计模式创建JForm,然后在源模式下开发它。我的表单中有两个按钮,我想在generateNumber按钮执行任务之前检查是否单击makeGuess按钮。以下是相关的代码行。

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 个答案:

答案 0 :(得分:1)

我认为问题在于generateNumber.getModel().isPressed()本身的用法。这会告诉您当前是否按下按钮。

正如您在方法makeGuessActionPerformed中所拥有的那样,它是这样的:

  • 您正在按下makeGuess按钮
  • 执行方法makeGuessActionPerformed
  • 作为方法的一部分,您检查是否单击了按钮generateNumber(当您单击按钮makeGuess时,这不是真的)

你可以,例如使用布尔值来跟踪状态。布尔值反映了按钮generateNumbers是否已被按下。

  • 单击按钮generateNumbers将布尔值设置为true。
  • 在方法makeGuessActionPerformed中,您可以检查布尔值。如果为false,则抛出异常。否则继续执行。