У меня есть проблема с этим кодом:Java: Нить не изменяет GUI даже с SwingUtilities.invokeLater
public class Gui_01 extends JFrame {
private JPanel display;
private ActionListener visualizza() {
ActionListener evento = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
display.removeAll();
Thread t = new Thread(new Runnable() {
public void run() {
JPanel visualizza = new JPanel();
visualizza.add(new JLabel("Test", SwingConstants.CENTER));
display.add(visualizza, BorderLayout.SOUTH);
updateProgress(visualizza);
}
}
);
t.start();
}
};
return evento;
}
private void updateProgress(final JPanel visualizza) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
display.add(visualizza, BorderLayout.SOUTH);
}
});
}}
Я не понимаю, почему этот код не работает должным образом, нить т и поток в updateProgress работает нормально, но любая модификация отображения не повлияет на графический интерфейс даже с invokeLater.
display.add(visualizza, BorderLayout.SOUTH)
Этот код не изменить графический интерфейс, я знаю, что это нормально (из-за свинг), но почему invokeLater не работают.
Извините за мой плохой английский, спасибо за ответы.
Отличный ответ, большое вам спасибо.^_^ – xSanciopanzax
Рад, что это может помочь – MadProgrammer