Обновление GUI другим потоком в java (swing)

У меня есть основная программа, в которой графический интерфейс основан на качании, и в зависимости от одного из четырех состояний элементы графического интерфейса имеют разные параметры.

public class Frame extends JFrame implements Runnable {
Status status = 1;
...
@Override
public void run() {
    switch (status) {
        case 1:
        ...
        case 2:
        ...
}

public void updateGUI(Status status) {
   this.status = status;
   SwingUtilities.invokeLater(this);
}

И если я хочу обновить графический интерфейс, вызывается только updateGUI с соответствующим параметр, и все нормально. Но программа также создает дополнительный поток, который после обработки соответствующих данных должен изменить основную программу GUI. К сожалению, я не могу в этом потоке вызвать метод updateGUI (..).

Я знаю, что могу использовать invokeLater или SwingWorker для обновления, но есть более 10 элементов, поэтому я бы предпочел использовать метод udpateGUI ().

Буду признателен за любую подсказку.

8
задан galica 29 August 2011 в 11:09
поделиться