JTable и потоки

Я использую JTable. Многие потоки будут пытаться добавить строки в JTable.

Проблема: добавляется только одна строка. После этого строка не добавляется.


person Rahim    schedule 08.02.2011    source источник
comment
Можете ли вы показать нам код, который вы используете для обновления jtable? вы используете SwingUtilities?   -  person dogbane    schedule 08.02.2011


Ответы (2)


Swing, как правило, не является потокобезопасным. Если вам нужно изменить компоненты Swing из потоков, отличных от AWT Event-dispatch-Thread, используйте

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

В качестве альтернативы invokeAndWait. (Эти методы на самом деле делают то же самое, что и одноименные методы в java.awt.EventQueue.)

person Paŭlo Ebermann    schedule 08.02.2011

Добавляется только одна строка. После этого строка не добавляется.

Возможно, потому что вы каждый раз воссоздаете TableModel или у вас есть несколько ссылок на TableModel, и ваш код обновляет неправильную модель.

person camickr    schedule 08.02.2011