Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JAVA] Come chiude JFrame?

    Ciao,
    come distruggo un JFrame senza chiudere tutta l'applicazione???
    con EXIT_ON_CLOSE mi esce dall'applicazione.

    Sto usando il metodo hide(), ma questo nasconde (infatti alla fine mi trovo molti processi li morti anche se ho chiuso!!!)

    COme faccio allora a distruggire un Jframe (chiamato da un altro) senza chiudere tutto?

    grazie ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    utilizza DISPOSE_ON_CLOSE in luogo di EXIT_ON_CLOSE durante
    la chiamata al metodo "setDefaultCloseOperation(int)".
    Occhio che se quella è l'ultima finestra visualizzata, verrà
    terminate anche la VM.
    Slack? Smack!

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da Sergio Pedone
    Occhio che se quella è l'ultima finestra visualizzata, verrà
    terminate anche la VM.
    Questo non è del tutto vero...
    codice:
    import javax.swing.*;
    import java.awt.event.*;
    
    public class Finestra {
       public static void main(String [] args) {
          JFrame f = new JFrame();
          f.setSize(500, 500);
          f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
          f.show();
       }
    }
    La finestra si chiude, ma la JVM è ancora in esecuzione. Ho visto anch'io questa affermazione sulla documentazione, ma a prove fatte non è così.


    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
    Grazieee!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Originariamente inviato da LeleFT
    La finestra si chiude, ma la JVM è ancora in esecuzione. Ho visto anch'io questa affermazione sulla documentazione, ma a prove fatte non è così.
    Ciao LeleFT, non è per contraddirti,
    ma a prove fatte, il codice che hai postato,
    pone termine anche alla JVM. Come da teoria.

    Ah, su Slackwore e con SDK_1.4.2.
    Per le versioni precedenti, ricordo che era lo stesso.

    Slack? Smack!

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ah... beh... allora è solo un problema di Windows. Io ho fatto le prove su NT 4 e, se non erro, anche su XP fa lo stesso: il prompt non viene rilasciato se non dopo aver premuto CTRL + C


    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

  7. #7
    ah un ok il DISPOSE_ON_CLOSE, pero se io lo devo dire da codice, non premendo la X.. cioe faccio un qualcosa e poi devo tirar via il frame senza tirar via il programma che metodo uso???

    grazie ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    JFrame frame = new JFrame();
    // altro codice
    frame.dispose();
    Slack? Smack!

  9. #9
    grazie!! Veramente tanto..




  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Altra soluzione (dalla classe della finestra):
    codice:
    processWindowEvent( new WindowEvent(this, WindowEvent.WINDOW_CLOSING) );
    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

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.