2016-12-11 4 views
0

例外を処理しようとしています。非常に参考になったcricket_007の勧告でIf文を使用する!しかし、まだそれを苦労しています。基本的には、私のguiの最初の文字列の質問に答えると、次の質問を得るためにインデックスカウンタをインクリメントします。ユーザーが7番目の質問に答えた後、私はメソッドを終了したいが、ただoutOfBounds例外を取得するだけです。私は(questionIndex> questions.size()) 場合(questionsIndex>(questions.size()場合インデックスの範囲外例外処理

を試してみました - 1)

とインデックスが小さい場合、それをどこ他の方法を書いて試してみましたサイズよりも、 「の結果()」メソッドを実装し、「!行なわ」の質問...と他の表示をお願いします。

protected void calcPersonnelRisk() { 
    if(questionIndex >(questions.size()-1)){ 
     message.setText("Done"); 
     System.exit(0); 
    } 
     //do closing action methods, display total Personnel Risk , end program 
    else{ 
    yesButton.setVisible(false); 
    noButton.setVisible(false); 
    message.setFont(new Font("Tahoma", Font.BOLD, 14));  
    message.setText(questions.get(questionIndex++)); 
    enterButton.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
       int r= Integer.parseInt(textField.getText().trim()); 
       responses.add(r); 
       textField.setText(""); 
       message.setText(questions.get(questionIndex++));      
     }}); 

    } 

}//end calcPersonnelRisk 

答えて

0

すっごく、自分の質問(うまくソートの)私はまだ信用に答えCricket_007。彼は正しい方向に私を導いた、私はちょうど間違った場所にコードを入れた。解決策は条件付きに動いている。

protected void calcPersonnelRisk() { 
    yesButton.setVisible(false); 
    noButton.setVisible(false); 
    message.setFont(new Font("Tahoma", Font.BOLD, 14)); 
    message.setText(questions.get(questionIndex++)); 
    enterButton.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
       int r= Integer.parseInt(textField.getText().trim()); 
       responses.add(r); 
       textField.setText(""); 
       if(questionIndex < questions.size()){ 
       message.setText(questions.get(questionIndex++));} 
       else message.setText("Done"); 
       //do finishing stuff, move to the next method! 
     }}); 
関連する問題