2009-05-13 2 views
0

정렬 된 JList에 대해 sample을 찾았습니다. 내 응용 프로그램은 포함 된 H2 데이터베이스로 구동되므로 더 좋은 방법이 없는지 궁금합니다. 그것을 염두에두고 이것을 구현하십시오. 특히 문제가되는 테이블이 엄청나게 커질 수 있다는 점을 고려하면 JList의 목록 모델에서 모든 데이터를 복제하면 데이터베이스를 관리 할 수있는 이점을 다소 상실한 것으로 보입니다.Java 문제 : 데이터베이스 테이블을 나타 내기 위해 정렬 된 JList가 필요합니다

이렇게하는 좋은 방법이 있습니까? 아니면 JList가 동적으로 쿼리되는 데이터 또는 다른 것을 통해 "스크롤"할 수 있도록 허술한 해킹을 함께해야만합니까?

답변

2

귀하의 JListListModel은 배킹 데이터를 정렬 된 목록으로 표시 할 책임이 있습니다. ListModel의 메소드는 UI (AWT 이벤트) 스레드에서 JList에 의해 호출 될 것이므로 성능을 꽤 좋게 조정해야합니다. 이것이 대부분의 구현에서 ListModel의 백업 데이터를 메모리에 저장 한 이유입니다. 당신이 데이터베이스를 보조 데이터로 ListModel을 구현할 수 있다고 가정합니다. 청취자 등록을 얻으려면 AbstractListModel을 확장하고 getElementAt(int)getSize()을 구현하십시오. getElementAt은 특정 색인에 대한 객체를 가져 오는 역할을합니다. JList은 다른 인덱스에 대해 getElementAt 번을 여러 번 호출하므로 결과를 캐싱 할 수 있습니다. 캐싱하는 데이터의 양에 따라 데이터베이스에서 전체 데이터 세트를 검색하면됩니다.