2016-04-16 98 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; 
      } 
    }