Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [JAVA] Main strano

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655

    [JAVA] Main strano

    codice:
    public static void main(String...args){
    SwingUtilities.invokerLater(new Runnable){
    public void run(){
    new Prova()/*Il nome della classe Prova*/.init();
    }
    Questo main è alquanto particolare:
    - Cosa significa .. dopo String?
    - L'utilizzo della classe SwingUtilities con l'istanzazione di un oggetto Runnable a che serve?
    - Il metodo run da chi viene richiamato?

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Tranne che per il primo punto penso che la mia perplesità nasca dal fatto che ho qualche lacuna rispetto a AWT event dispatching thread
    Giusto?

  3. #3
    La prima riga dovrebbe creare in thread.
    La funziona run() si usa per i thread, cioè quando un thread viene lanciato chiama proprio la funzione run() in automatico,quindi fa ciò che c'è scritto nella funzione run()

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    -Cosa significa .. dopo String?
    - L'utilizzo della classe SwingUtilities con l'istanzazione di un oggetto Runnable a che serve?
    - Il metodo run da chi viene richiamato?
    ... in Java 5 serve quando non sai quanti parametri di quel tipo varranno passati, sarebbe come mettere un array [], dopo fai args[indice] e leggi normalmente.

    SwingUtilities permette di creare il thread in maniera più diretta e semplice, quindi tutto ciò che sta in run verrà eseguito in maniera indipendente dal presto del programma
    se fai

    metodoCheStampa100CaratteriAConsole();
    metodoCheScriveInUnFileLora();

    il secondo metodo non parte finchè non viene terminato il primo, se fai

    SwingUtilities.invokerLater(new Runnable() {
    public void run(){
    metodoCheStampa100CaratteriAConsole();
    });
    metodoCheScriveInUnFileLora();

    Appena parte il primo parte anche il secondo e saranno in due fili conduttori diversi; un processo è un programma intero, che sta in un campo di memoria tutto suo, che ti permette di usare l'editor di testo mentre usi il browser. Ogni processo ha dei sottoprocesse, dei thread, che stanno nel suo stesso spazio di memoria e ti permettono di scaricare la posta mentre ne stai scrivendo una tu e cose così.

    Il metodo run come di è già stato detto viene chiamato dal thread. Usando SwingUtilitis non si capisce bene il meccanismo, praticamente c'è l'interfaccia Runnable che da la firma a run senza dirgli cosa fare; in questo modo quando fai

    ClasseRunnable runnuble = new ClasseRunnable();
    Thread th = new Thread(runnable);

    Verrà chiamato run perchè thread(o invokeLater) sa che c'è, cosa dovrà fare glilo dice il programmatore quando, implementando Runnable, scriverà anche il corpo del metodo.

    L' event dispatching thread è il thread che gestisce gli eventi dell'applicazione, permettendoti di scrivere in un file dei dati, mentre l'utente potrà continuare ad interagire con il programma; se metti tutto in un thread(nell'
    AWT event dispatching thread in questo caso) finchè non verrà scritto tutto nel file, gli eventi non verranno gestiti.

    Spero di essere stato chiaro.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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.