1
새로 삽입 된 행에 대해 데이터베이스에서 매초마다 검사하는 프로그램이 있는데 새 레코드가 발견되면 listModel을 지우고 데이터베이스에서 모든 데이터를 다시 검색해야합니다. 목록에 표시하십시오.멀티 스레드에서 JList 다시 그리기 방법
itemListModel.clear();
ArrayList resultArrayList = DBQueries.getAllSubmittedSaleTransaction();
Iterator iterate = resultArrayList.iterator();
int i = 0;
while (iterate.hasNext()) {
Hashtable data = (Hashtable) iterate.next();
itemListModel.add(i, data);
this.itemList.addNotify();
this.itemList.validate();
this.itemList.repaint();
i++;
}
this.validate();
this.repaint();
그러나 문제는 다시 그리기 방법이 때때로 작동하지 않는 경우입니다. 이를 수행하는 현명한 방법이 있습니까? 사전
새로운 데이터를 추가 한 후 모델이fireContentsChanged(...)
를 호출 특히 경우, 모델의 갱신을하는 경우가 JList의를 칠 필요가 없습니다
+1 나는 "때때로"라는 단어를 볼 때 EDT에서 GUI 업데이트 코드가 실행되지 않는다고 생각합니다. – camickr
나에게 잘 어울리는데 ... 고마워요. – Norks
@Norks : 천만에! –