Качели, как правильно обновить UI

Каков правильный способ обновления пользовательского интерфейса после выполнения некоторых операций с Swing?

Например, после нажатия кнопки вызывается метод, который может быть почти мгновенным или потребовать некоторого секунд. Фактически, вся логика приложения выполняется удаленно через веб-службу, поэтому нормально немного подождать, пока приложение ответит.

Мой обработчик событий для кнопки может выглядеть следующим образом:

myButton.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
       //callWebService();
       //do stuff
       //updateUI(); // <----- repaint? revalidate? what?
   }
});

Моя текущая реализация вызывает updateUI, который внутренне вызывает validate () и repaint () для родительского компонента, содержащего UI. Это работает, но иногда я вижу мерцание экрана. Я что делаю неправильно? Есть ли лучший способ сделать это?

8
задан Hectoret 7 February 2011 в 11:54
поделиться