Java swing, mit csinál ez a kódrészlet?
javax.swing.SwingUtilities.invokeLater(
new Runnable()
{
public void run()
{
createAndShowGUI();
}
}
);
valaki leírná részletesen, hogy melyik része, mit csinál?
miből tanuljak a swingről?





Ez azt csinálja, hogy megmondja a Swing keretrendszernek, hogy amikor neki tetszik, futtassa le az általad definiált metódust, egy külön szálon. Azért kell így hívni a GUI létrehozást, hogy ne fagyjon le a programod.
javax.swing.SwingUtilities.invokeLater( // ld. fent
new Runnable() { // egyetlen metódust tartalmazó interfész
public void run() // az egyetlen metódusának kifejtése
{
createAndShowGUI(); // ami ezt hívja meg
} // run
} // class
); // call
Az invokeLater nem blokkol, tehát ahonnan hívod, ott megy tovább a program a következő műveletre.





Pont az ellenkezője, mint amit az előző válaszoló írt. Az invokeLater-ben lévő kód a GUI szálon fog futni, így másik szálról hívva lehet updatelni a GUI-t a run metóduson belül.
Tehát van egy szálad, ami hosszú műveltet végez külön szálon hogy a GUI ne fagyjon le, de akar valamit csinálni a GUI-val, így meghívja az invokeLater segítségével a GUI szálon a neki tetsző GUI módosításokat.





Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!