2013-03-22 6 views
8

JList 구성 요소에서 데이터를 검색하는 솔루션을 찾고 있었지만 아무 것도 찾지 못했습니다. Jlist의 항목을 반환하는 메소드가 있습니까? 나는 단지 선택된 것을 원하지 않는다. 나는 전체 목록을 원해.JList에서 데이터 가져 오기

이유는 목록 상자의 선택된 값에 대한 대화 상자 기본의 모든 구성 요소를 업데이트하는이 메서드가 있기 때문입니다. 같은 방법으로 목록 상자를 업데이트하고 싶습니다. 그래서 그렇게하기 위해 메서드는 호출 될 때마다 목록 상자를 업데이트하지 않아야합니다. 목록 상자의 값과 한 클래스에 저장 한 최신 데이터를 비교해야합니다 (그렇지 않으면 무한 루프가됩니다). 목록 상자의 데이터가 클래스의 데이터와 일치하지 않을 때만 업데이트됩니다.

목록 상자의 모든 데이터를 검색하는 방법이 있습니까?

답변

9

모델 데이터를 가져온 다음 모든 데이터 요소를 가져 오기 위해 ListModel 내부의 메서드를 사용하려면 getModel() 메서드를 사용해야합니다.

ListModel model = list.getModel(); 

for(int i=0; i < model.getSize(); i++){ 
    Object o = model.getElementAt(i); 
} 

+0

감사합니다, 그 임 찾고 무엇! – Andrew

3

http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html#getModel()

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListModel.html 선택을 얻으려면, 당신은 검색 할 getModel의 조합 getSelectedIndices

ListModel model = jListInstance.getModel(); 

for(int index : jListInstance.getSelectedIndices()) { 
    System.out.println(model.getElementAt(index)); 
} 
+2

OP는 선택한 요소 만이 아니라 모든 데이터를 가져 오려고합니다. – Varun