Buy Motilium Online Hoodia Without Prescription Topamax Online Buy Prozac Aldactone Online Buy Toprol XL Stromectol Online Buy Amoxil Glucotrol Online Buy Stromectol

Chi ha sviluppato interfacce grafiche in java, si sarà scontrato con il problema di realizzare GUI che non rispondessero in maniera rapida agli eventi o che diventavano lente nelle operazioni di disegno. A questo problema la Sun ha cercato un rimedio introducendo delle utility: javax.swing.SwingUtilities.invokeLater o javax.swing.SwingUtilities.invokeAndWait.

Per comprendere il loro funzionamento, dobbiamo introdurre il concetto di event dispatch thread. Questo altro non è che il thread dove vengono eseguiti gli eventi delle interfacce swing. I metodi sopra elencati non fanno altro che inviare a questo thread dei compiti da compiere con la differenza che il primo invia il compito e ritorna immediatamente al thread che o ha invocato mentre il secondo invia e aspetta che il compito venga eseguito.

Per questo motivo è consigliato sempre avviare un Gui con la seguente chiamata:

SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}

}

Nel caso in cui all’interno della Gui dobbiamo eseguire lunghe operazioni, conviene utlizzare l’utility SwingWorker che evita il problema dell’occupazione delle EDT per lugnhi periodi. Questa classe “astratta” mette a disposizione molti metodi di comunicazione con i thread e con EDT.

Riferimenti:

http://www.javaworld.com/javaworld/jw-06-2003/jw-0606-swingworker.html?page=1

http://www.javalobby.org/eps/galbraith-swing-2/index.html