我正在尝试使用 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/