Bom dia, estou confuso com o método [i]invokeLater[/i], estudei sobre [i]SwingWorker[/i] e entendi sobre a [i]thread trabalhadora[/i], mas eu achava que só pelo fato de vc criar uma classe sem o [i]SwingWorker[/i] a GUI já seria executada na [i]thread de despacho de eventos[/i], por exemplo:
private JTextField texto = new JTextField(15);
public void teste()
{
texto.setText("hello"); // isso seria executado na thread de despacho de eventos normalmente, sem a necessidade do método invokeLater
}
Mas então eu vi a utilização do método invokeLater e fiquei confuso, pq utiliza-lo para executar em uma thread de despacho de eventos se o código acima já faz isso sem esse método? Então não seria o caso de sempre utilizar o método invokeLater sempre que eu quisesse que a GUI fosse executada na thread de despacho de eventos? O método acima esta errado por não estar sendo executado pelo método invokeLater?
Método invokeLater
private void teste()
{
SwingUtilities.invokeLater(
new Runnable()
{
public void run()
{
texto.setText("hello");
/* para ser executado na thread de despacho de eventos, mas o exemplo anterior já não faz isso !?*/
}
}
)
}