2016-12-11 175 views
0

嘗試處理異常。根據cricket_007的建議使用If語句,他非常有幫助!但是,仍然在努力通過它。基本上,在我的gui中回答第一個字符串問題,然後遞增索引計數器以獲得下一個問題。在用戶回答第七個問題後,我想結束該方法,但是我只是得到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

的sooo,回答我自己的問題(好樣的),我還是信貸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! 
     }});