2016-05-07 11 views
2

Ich erstelle also eine App, mit der Sie Fragen beantworten und dann zum nächsten Mal weitergehen können. Ich mache das mit zwei JButtons, "submit" und "next". Immer wenn ich auf "Senden" klicke, möchte ich die Senden-Schaltfläche deaktivieren und die nächste Schaltfläche aktivieren. Wenn ich auf "Weiter" klicke, möchte ich die nächste Schaltfläche deaktivieren und die Übermittlungsschaltfläche aktivieren.

Wenn ich mein Programm teste, funktioniert diese Beziehung für jede der Schaltflächen einmal, aber dann werden sie nicht gegenseitig deaktiviert, und beide Schaltflächen bleiben für immer aktiviert.

Wie mache ich diese JButton-Beziehung so oft wie es heißt? Hier ist der Code, der beide Tasten einrichtet.Das Aktivieren/Deaktivieren von JButtons funktioniert nur einmal.

buttonSubmit = new JButton(new AbstractAction("Submit"){ 

     public void actionPerformed(ActionEvent e){ 
      try { 
       check((int)(engine.eval(expression))); 
      } catch (ScriptException e1) { 
      } 

      buttonNext.setEnabled(true); 
      setEnabled(false); 

     } 

    }); 

    buttonNext = new JButton(new AbstractAction("Next Question"){ 

     public void actionPerformed(ActionEvent e){ 
      setQuestionArithmetic(); 
      answer.setText(""); 
      correct.setText(""); 

      buttonSubmit.setEnabled(true); 
      setEnabled(false); 
     } 
    }); 

    buttonNext.setEnabled(false); 

Antwort

3

Mit diesem setEnabled(false); Sie die Aktion sind zu deaktivieren, nicht die Taste. Versuchen Sie, die Tasten in actionPerformed Methoden zu deaktivieren.

buttonSubmit = new JButton(new AbstractAction("Submit"){ 

    public void actionPerformed(ActionEvent e){ 
     try { 
      check((int)(engine.eval(expression))); 
     } catch (ScriptException e1) { 
     } 

     buttonNext.setEnabled(true); 
     buttonSubmit.setEnabled(false); 

    } 

}); 

buttonNext = new JButton(new AbstractAction("Next Question"){ 

    public void actionPerformed(ActionEvent e){ 
     setQuestionArithmetic(); 
     answer.setText(""); 
     correct.setText(""); 

     buttonSubmit.setEnabled(true); 
     buttonNext.setEnabled(false); 
    } 
}); 

buttonNext.setEnabled(false);