2011-02-08 5 views
0

JTable을 사용하고 있습니다. 많은 thread가 JTable에 행을 추가하려고합니다.JTable 및 스레드

문제점 : 한 행만 추가됩니다. 그 다음에는 행이 추가되지 않습니다.

+2

jtable을 업데이트하는 데 사용하는 코드를 표시 할 수 있습니까? SwingUtilities를 사용하고 있습니까? – dogbane

답변

2

스윙은 일반적으로 스레드로부터 안전하지 않습니다. 당신은 AWT의 이벤트 디스패치 스레드가 아닌 다른 스레드에서 스윙 구성 요소를 수정해야하는 경우,

SwingUtilities.invokeLater(new Runnable(){public void run() { 
    // here your modification code 
}}); 

또는 invokeAndWait를 사용합니다. (이 방법들은 실제로 java.awt.EventQueue의 같은 이름의 메소드와 동일합니다.)

0

하나의 행만 추가됩니다. 그 다음에는 행이 추가되지 않습니다.

아마도 TableModel을 다시 만들거나 TableModel에 대한 참조가 여러 개 있고 코드가 잘못된 모델을 업데이트하고 있기 때문일 수 있습니다.