2016-04-16 77 views
0

这是非常具体的。所以我正在做小测验应用程序,一切都完成了,但我有问题。所以当我点击正确答案时,它会变绿并且正确答案计数器上升。如果我点击错误的答案,它会变成红色,正确的答案会变成绿色。我有下一个问题的下一个按钮。如何在点击按钮后删除鼠标监听器?

所以你已经看到了问题在哪里?当我点击答案时,我仍然可以点击其他答案。我不想在点击后禁用按钮,因为我希望它们变成绿色/红色。

我希望只有在选择答案时才能点击下一个按钮。但我不想禁用答案按钮,因为它们会失去颜色。

下面是我的一些方法

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     jButton1.setBackground(Color.green); 
     Kviz.correctAnswers++; 
    }           

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
     jButton1.setBackground(Color.green); 
     jButton2.setBackground(Color.red); 
     // TODO add your handling code here: 
    } 
+1

那么,根据你在做什么,你可以等到按下按钮之类的东西像接受按钮,然后告诉他们是否正确;你可以禁用其他选项,但这确实排除了用户改变主意的可能性 – MadProgrammer

回答

0

只是做一个叫answerPicked变量。将其设置为false,然后在用户选择答案时将其设置为true。如果已经选择了答案,可以使用它来阻止操作侦听器执行任何操作。然后,当用户转到下一个问题时,您可以将answerPicked重置为false,以便用户可以再次选择答案。

0

为什么不创建一个布尔实例变量来控制用户是否点击。

boolean bIsClicked = false; 

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     if(bIsClicked == false){ 
      jButton1.setBackground(Color.green); 
      Kviz.correctAnswers++; 

      //change the status 
      bIsClicked = true; 
     } 
    }           

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
     if(bIsClicked == false){   
      jButton1.setBackground(Color.green); 
      jButton2.setBackground(Color.red); 
      // TODO add your handling code here: 

      //change the status 
      bIsClicked = true; 
      } 
    }