Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    70

    [JAVA] Ritornare il controllo ad una finestra

    Ciao a tutti,
    ho un problemino nella realizzazione della mia applicazione in Java: il programma entra in un loop while(true) nel cui interno deve eseguire costantemente delle operazioni!!! Vorrei inserire un pulsante nell'interfaccia che al click mi termini il programma con exit(0)!!!
    Il problema è che quando il flusso di esecuzione entra nel while, l'interfaccia (che fà parte di un'altra classe) non riesce più a riottenere il controllo e quindi la pressione dei bottoni non scatena nessun evento (nemmeno se chiudo il programma con la X). Adesso per chiudere il programma devo terminarlo col task manager!!!!!

    Vi prego aiutatemi!!!!!!!! Come faccio a far ridare il controllo all'interfaccia?!?!?

    grazie!!!!

  2. #2
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Devi mettere il while in un altro task. Sai come fare?
    Maddalena... Perché proprio Iacchetti!...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    70
    No purtroppo non lo saprei fare!!!!

    Mi potresti fare un esempio?!?!

    grzaaaaazieeeee!!!!!

  4. #4
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    [CODE]
    class SO extends Thread
    {
    JDialog d;

    public SO(JDialog d)
    {
    this.d = d;
    }

    public void run()
    {
    //Qui chiami la classe che fa il ciclo while passandogli tra i parametri anche [B]d/B]
    }
    }

    SO so = new SO(popup_window);
    so.start();
    popup_window.show();
    [CODE]

    Breve spiegazione
    La classe SO come vedi è molto semplice e la puoi benissimo includere in un'altra classe (facendola diventare una classe interna). La prima cosa che devi fare come vedi è crearti un oggetto (so) della classe SO ed in seguito chiamarne il metodo start(). Nell'esempio che ti ho postato ho supposto che tu ti crei una classe che estenda JDialog in cui magari puoi mettere un messaggio tipo "Elaborazione in corso, attendere prego... Se si desidera interrompere il ciclo chiudere questa finestra" quindi crei un oggetto (nel mio caso l'ho chiamato popoup_window) di questa classe e lo passi al costruttore di so. Facendo questo potrai passare d alla classe in cui includerai il tuo ciclo; durante l'esecuzione del ciclo tu chiamerai il metodo isVisible() dell'oggetto d e quando questo ti restituirà false, vorrà dire che l'utente ha chiuso con la "x" la tua JDialog e a quel punto farai terminare il tuo ciclo ed il programma procederà con l'istruzione seguente a popup_window.show();

    Sono stato chiaro?
    Maddalena... Perché proprio Iacchetti!...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    70
    grazie dell'esempio chiarissimo!!!!

    Ora lo provo subito!!!!!
    ciao ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.