Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Löncsi
    őstag

    Nem mondhatnám, hogy értem amit írsz... :)
    (pontosabban azt, hogy mi köze a problémámhoz - itt most kimondottan példaprogramokról van szó)

    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
    }
    });
    }

    Szinte minden példaprogram, ami swinghez kapcsolódik, így indul.
    Miért nem elég csak statikusan indítani a createAndShowGUI-t?
    Az, hogy belül egyik-másikhoz új szálat indít, az egy másik téma. Azt nem értem, hogy miért kell a main futásától "függetleníteni" bármit?

    javax.swing.SwingUtilities.invokeLater(new Runnable() { .. }

    Fontos ,hogy kirajzolásokat az EDT szálon hajtsuk végre, más esetben hiba léphet fel (nomeg a grafikai műveletket meg kell próbálni függetleníteni a számításoktól, ezért kell külön szál).
    Az invokeLater biztosítja, hogy a kirajzolás EDT szálon hajtódik végre. (Ugye paraméterben egy Runnable-et adsz át, a run() metódus tartalmazza a grafikai parancsokat).

    Le is tudod ellenőrizni ,hogy a kirajzolás EDT-n történik-e, az isEventDispatchThread() függvény meghívásával , logikai értéket ad vissza.

    Remélem hasznos volt,bár látom utánajártál.

  • x123456
    aktív tag

    Nem mondhatnám, hogy értem amit írsz... :)
    (pontosabban azt, hogy mi köze a problémámhoz - itt most kimondottan példaprogramokról van szó)

    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
    }
    });
    }

    Szinte minden példaprogram, ami swinghez kapcsolódik, így indul.
    Miért nem elég csak statikusan indítani a createAndShowGUI-t?
    Az, hogy belül egyik-másikhoz új szálat indít, az egy másik téma. Azt nem értem, hogy miért kell a main futásától "függetleníteni" bármit?

    Azt hiszem, megvan a magyarázat.

Új hozzászólás Aktív témák