Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    7

    Mi aiutate a capire questo codice?

    Salve a tutti, vorrei un aiuto. Nonostante la breve spiegazione commentata non capisco perchè il seguente
    codice che allego ha quei metodi nel main(). Nel libro che seguo su java swing invece nel main
    non compare mai quel metodo run. Mi spiegate a cosa serve e se è necessario inserirlo nelle applicazioni?
    grazie
    Ultima modifica di LeleFT; 29-04-2014 a 16:51

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    non vedo il codice nel tuo post...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Quote Originariamente inviata da minomic Visualizza il messaggio
    Ciao,
    non vedo il codice nel tuo post...
    Stavo, appunto, aspettando di capire se voleva postarlo in una risposta... nel frattempo ho tolto la colorazione del testo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Probabilmente si riferisce ai metodi initialize e run (se non ricordo male) che WindowBuilder inserisce automaticamente quando lo si utilizza in Eclipse per generare un GUI in modo visuale.

    In questo caso è un po' il concetto del divide-et-impera: il main lancia altre funzioni che si occupano di creare la frame, ecc.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    7
    Scusate:

    public final class HelloWorld {

    public static void main(String[] args) {

    // Questo fa sì che tutto il codice che crea e mostra a schermo la GUI venga eseguito sul thread
    // che gestisce la coda degli eventi di Swing (e di AWT).
    SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    mainOnEventDispatchThread();
    } });

    }

  6. #6
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Esatto, quello che pensavo. Usi WindowBuilder con Eclipse? In caso affermativo puoi leggere il mio post sopra.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Beh... non è questione di WindowBuilder o altro. Semplicemente, quando si avvia un'applicazione che fa uso di componenti grafici (quindi, almeno una finestra), la creazione della finestra e di tutti i componenti grafici va delegata all'EDT. E questo lo si fa, appunto, in quel modo: ovvero, passando un Runnable all'EDT attraverso uno dei due metodi "invokeLater" o "invokeAndWait" di SwingUtilities.

    Ma questo vale in generale, per qualunque operazione che un thread volesse far fare all'EDT (che sia il Main-Thread o un qualunque custom thread).

    codice:
    SwingUtilities.invokeLater( new Runnable() {
       @Override
       public void run() {
          // Le istruzioni presenti qui verranno eseguite nel contesto del EDT
          ...
       }
    }
    );

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    7
    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.