Java, GUI i thread’s

Klasycznie tworząc aplikacje GUI musimy mieć na uwadze jej wielowątkowątkowość. W ActionListener implementować prywatne klasy runnable, thread etc.. metoda sprawdzona i działająca jednak w Java 6 mamy coś nowego, co pozwala na szybkie “oblikanie” wątków. Mowa tutaj o SwingWorker, świetna funkcjonalność – zajmuje się pbsługą wątków za nas, np:

Przykład ActionPerformed:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
if(praca != null && !praca.isDone()) return;
praca = new pracuje();
praca.execute();
}

Implementacja klasy pracuje:


private class pracuje extends SwingWorker
{
@Override
public Integer doInBackground()
{
//Robie duzo obliczen
wynik = jakiesobliczenia();
return wynik;
}

@Override
protected void done()
{
System.out.println("done");
jLabel5.setText( "Zrobione" );
}
}

Czyś nie przyjemnie ?
Mnie się bardzo ta metoda podoba.

Leave a Reply

Your email address will not be published. Required fields are marked *