2009-11-23 4 views
0

JTextFeild에있는 문자열의 상태를 읽는 클래스가 있습니다 (이 경우 displayBox는 클래스 임). 메서드는 상태를 읽어 ArrayList (이 경우에는 lastState)에 넣고 메서드가 호출 될 때 Jtext feild에 다시 넣을 수 있습니다 (이 경우 returnState) displayBox는 선언 된 Jtextfeild 클래스의 객체이며 다른 클래스에서 사용 (Calculator 클래스) 집 작업 과제에 대해 실행 취소 기능을 작성하려고합니다. 내 질문은 배열 날짜 가져 오기 및 설정에 대해 갈 수있는 올바른 방법입니다. 감사합니다. 코드는 다음과 같습니다 :JtextFeild의 항목을 ArrayList에 추가하고 다시 가져 오기

import java.util.*; 
import java.awt.event.*; 
import java.awt.*; 
/** 
* Write a description of class Status here. 
* 
* @author (Jason Sizemore) 
* @version (HW09 11-21-09) 
* This is a class to get the status for the undo feature 
*/ 
public class Status extends Calculator 
{ 
    //attributes 
    private ArrayList<String> lastState; 
    public String ls; 

    public String rls; 
    //constructors 

    public Status() 
    { 
     super(); 
     lastState = new ArrayList<String>(10); 
    } 

    //Methods 
    public void copyState() 
    { 
     ls = displayBox.getText(); 
     lastState.add(ls); 
     System.out.println(ls); 
    } 

    public String returnState() 
    { 
     //problem is here 
     int sizeOfArrayList; 
     sizeOfArrayList = lastState.size(); 
     rls = lastState.get(sizeOfArrayList); 
     return rls; 
    } 
} 
+0

어떤 문제가 발생합니까? –

+0

스레드 AWT-EventQueue-0에서 런타임 예외가 발생했습니다. java.lang.IndexOutOfBoundsException : 인덱스 : 3, 크기 : 0 –

+0

Size_J 인덱스는 0부터 시작하는 카운터이므로 3 개의 요소 (size()가 3을 반환하는 경우) 0, 1, 2 이렇게 색인을 만들 수는 없으므로 .get (크기) .get (크기 -1) –

답변

1

List.getSize() 목록에있는 요소의 수를 반환 무엇 Luno 말했다 재 작성. 인덱스는 0부터 시작하므로 List에서 얻을 수있는 가장 높은 인덱스는 총 요소 수보다 하나 적은 값입니다.

+0

정보를 제공해 주셔서 감사합니다. –

관련 문제