Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Chiudere un JDialog

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    111

    Chiudere un JDialog

    Ragazzi, ho realizzato un JDialog usando Netbenas, solo che vorrei dotarlo di un bottone "chiudi", ma non so che tipo di azioni mettere nel bottone.
    Ho provato a mettere nel corpo del metodo associato al bottone:
    this.dispose(), ma non sortisce l'effetto sperato, praticamente nasconde il jdialog aperto, ma non lo chiude... sapete aiutarmi? Grazie
    Si vis Pacem Para Bellum

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Chiudere un JDialog

    Originariamente inviato da Lord112
    praticamente nasconde il jdialog aperto, ma non lo chiude... sapete aiutarmi?
    Non ho capito...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    111
    Con il this.dispose, il jdialog non viene chiuso, il processo resta attivo, la finestra viene solo nascosta, io vorrei qualcosa di più silime al System.exit(0) , però che non faccia chiudere tutto il programma, ma solo il jdialog specificato.
    Sono stato più chiaro ora? grazie
    Si vis Pacem Para Bellum

  4. #4
    questo è impossibile
    il metodo dispose distrugge la finestra...
    Ma poi come fai ad accorgertene se non è visibile?

    Cmq mi sa devi postare il codice...non abbiamo ancora la sfera magica...
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Lord112
    Con il this.dispose, il jdialog non viene chiuso, il processo resta attivo, la finestra viene solo nascosta, io vorrei qualcosa di più silime al System.exit(0) , però che non faccia chiudere tutto il programma, ma solo il jdialog specificato.
    Allora: dispose() fa 2 cose: chiude la finestra (nel senso che la nasconde) e rilascia tutte le risorse "native" (memoria, handle vari, ecc...) che la finestra e i componenti contenuti avevano allocato dal sistema.
    (nota: setVisible(false) nasconde solo, non rilascia risorse native).

    L'oggetto della Dialog però non sparisce in conseguenza di questo, nel senso che come per qualunque altro oggetto, finirà in pasto al garbage collector solo quando non sarà più raggiungibile.

    Il dispose di una finestra può far terminare il programma, ma solo se quella era l'unica finestra displayable e non ci sono altri non-daemon thread.
    La cosa è spiegata bene (anche troppo formalmente) in: Auto-shutdown
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    111
    Grazie a tutti per la risposta, mi sono accorto che il JDialog non viene chiuso, guardando i processi in netbeans; ad ogni modo, se questa è l'unica alternativa valida, va bene così, tanto alla fine non consuma eccessive risorse quindi... Grazie a tutti per il supporto
    Si vis Pacem Para Bellum

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Lord112
    mi sono accorto che il JDialog non viene chiuso, guardando i processi in netbeans
    Allora non ho ancora capito cosa intendi per "chiuso". Se fai dispose(), ripeto che la dialog viene visivamente chiusa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8

    Problemi test GUI

    Salve a tutti, sto imparando a gestire una GUI usando i componenti swing di java. Per impratichirmi un po' ho provato a scrivere questa piccola GUI:
    codice:
    import javax.swing.*;
    
    class GUI
    {
    	public static void main(String[] args)
    	{
    		//creazione componenti
    		JFrame frame = new JFrame("Test GUI");
    		JTextField txt_field = new JTextField();
    		JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
    		JLabel label = new JLabel("Sto effettuando un test di creazione di una GUI");
    		JButton button = new JButton("Ok", null);
    		JTextArea txt_area = new JTextArea("Area di testo..", 10, 20);
    		BoxLayout layout = new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS);
    		frame.add(label); frame.add(slider); frame.add(txt_area); frame.add(txt_field);
    		frame.add(button);
    		frame.setVisible(true);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setLayout(layout); frame.pack(); frame.setResizable(false);
    	}
    }
    ma presenta molto problemi che vorrei capire a cosa sono dovuti
    In primis la posizione del JLabel e del JButton dipendono dal testo inserito nella JTextArea, cosa molto strana In secondo luogo scrivendo nella JTextArea il testo non va mai a capo ma esce dalla finestra Qualcuno che mi sa dare spiegazioni?

  9. #9

    Re: Problemi test GUI

    Originariamente inviato da TrashcanDLM
    Salve a tutti, sto imparando a gestire una GUI usando i componenti swing di java. Per impratichirmi un po' ho provato a scrivere questa piccola GUI:
    codice:
    import javax.swing.*;
    
    class GUI
    {
    	public static void main(String[] args)
    	{
    		//creazione componenti
    		JFrame frame = new JFrame("Test GUI");
    		JTextField txt_field = new JTextField();
    		JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
    		JLabel label = new JLabel("Sto effettuando un test di creazione di una GUI");
    		JButton button = new JButton("Ok", null);
    		JTextArea txt_area = new JTextArea("Area di testo..", 10, 20);
    		BoxLayout layout = new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS);
    		frame.add(label); frame.add(slider); frame.add(txt_area); frame.add(txt_field);
    		frame.add(button);
    		frame.setVisible(true);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setLayout(layout); frame.pack(); frame.setResizable(false);
    	}
    }
    ma presenta molto problemi che vorrei capire a cosa sono dovuti
    In primis la posizione del JLabel e del JButton dipendono dal testo inserito nella JTextArea, cosa molto strana In secondo luogo scrivendo nella JTextArea il testo non va mai a capo ma esce dalla finestra Qualcuno che mi sa dare spiegazioni?
    Oddio volevo creare una nuova discussione e per sbaglio ho risposto a questa D:
    Scusatemi tantissimo! Ho provato a rimuovere il messaggio ma non riesco, qualcuno può farlo al posto mio? scusate ancora

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.