java - 无法使用 NetBeans 检查 JButton 是否被单击

标签 java netbeans jbutton

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

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按钮。请问有人可以帮我吗?

最佳答案

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

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

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

你可以例如使用 boolean 值来跟踪状态。 boolean 值反射(reflect)了按钮generateNumbers是否已被按下。

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

关于java - 无法使用 NetBeans 检查 JButton 是否被单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44120065/

相关文章:

php - 在没有 Apache 的情况下在 NetBeans 6.8 上调试 PHP

java - NetBeans 平台 : How to disable specific options dialog categories?

java - Swing:如何对齐 JButton

java - 批量添加JButtons等

java - 执行 .bat 文件时启用按钮

java.lang.NoClassDefFoundError 但 .class 文件已经存在

java - 从词法分析器/解析器语法生成产生式

JAVA - Jpeg 到 Jpeg 隐写术

java - 接口(interface)实现之间的用例

java - 组布局 : Is it worth learning?