2009-07-28 11 views

답변

6

SwingWorker은이를 수행하기위한 것입니다.

GUI를 차단하지 않는 작업을 실행 한 다음 값을 반환하고 완료되면 GUI를 업데이트 할 수 있습니다.

Java SwingWorker 사용 방법은 great tutorial입니다.

기본적으로 데이터베이스는 doInBackground() 메서드에서 가져옵니다. 그리고 done() 방법에서 GUI를 업데이트하십시오.

5

jingy가 언급했듯이 SwingWorker는 처음 보는 사람이되어야합니다. Wikipedia에는 JavaDocs를 다루기 전에 살펴볼 흥미로운 예제가 몇 가지있다.

+0

위키 피 디아가 'SwingWorker'에 대해 위대한 기사를 가지고 있다는 것을 결코 알지 못합니다. 나는 너를 업신 여긴하지만, 나는 정렬 순서 위에 내 자리를 잃고 싶지 않다 ... (미안) – jjnguy

+0

거기 가라. '+ 1'! – jjnguy

+0

Grr, 그러나 만약 당신이 계속 upvotes를 얻는다면 나는 결코 당신을 'Questions tagged Java' ': P' – jjnguy

2

jingngu가 언급했듯이, SwingWorker는 여기에서 복잡성을 추상화하는 데 도움이되지만, 기본적으로 새 스레드에서 작업을 수행하고 메소드가 돌아 오면 스윙 스레드에서 GUI를 업데이트해야합니다. SwingWorker를 사용하지 않는 경우 기본 메서드는 SwingUtilities (또는 EventQueue) .invokeLater (Runnable)입니다.

스윙 큐 외부에 스윙 관련 (모델 포함)이 있으면 예측할 수없는 일이 발생합니다. 대기열에 대한 참조를 보유하지 않고 대기열이 일시 중단되고 대체되면 (예 : 모델 대화 상자를 여는 경우) 사용하지 마십시오.