我正在尝试使用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
按钮都可以。有人可以帮我吗? 最佳答案
我认为问题是generateNumber.getModel().isPressed()
本身的用法。这告诉您当前是否按下了按钮。
当您在方法makeGuessActionPerformed
中拥有它时,它就像这样:
您正在按按钮makeGuess
方法makeGuessActionPerformed
被执行
作为方法的一部分,您检查是否单击了按钮generateNumber(这不是正确的,因为您单击了按钮makeGuess)
您可以例如使用布尔值来跟踪状态。布尔值反映是否已按下按钮generateNumbers。
单击按钮generateNumbers会将布尔值设置为true。
在方法makeGuessActionPerformed
中,您可以检查布尔值。如果为false,则抛出异常。否则,继续执行。