Все обращения к компоненту пользовательского интерфейса должны выполняться в «Потоке диспетчеризации событий» (EDT), поэтому вы можете проверить SwingUtilities.invokeLater()
et.al. :
final String newVal = "toto";
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
myLabel.setText(newVal);
}
});
Обратите внимание на модификатор final
для значения, которое вы хотите установить, поскольку создается подкласс.
Возможно, у вас есть лучшие способы сделать это с помощью лямбды в Java 8, но идея остается прежней.