Newsgroup: it.comp.java
Titolo: Problemi con chiusura JFrame

ciao,
credo di porre una domanda banale, ma su google non son riuscito a
trovare risposta...
sto usando (da poco) NetBeans 3.6 per crearmi l'interfaccia grafica di
un programmino didattico.
il programma è strutturato cosi: un JFrame, con al suo interno un
JTappedPane. Gli elementi (Tab) del JTabbedPane sono dei JPanel creati
in classi separate (ovvero tante classi che estendono JPanel).
in uno dei Tab ho bisogno di mettere un bottone che, tra le altre
cose, deve chiudere l'intero JFrame.
come posso fare?
normalmente uso "this.dispose();"
ma in questo caso non posso perchè mi trovo dentro a un'altra
classe...
non credo di essermi spiegato molto...
comunque se riuscite a darmi una mano... :-)
thanks ;)

"chok" <samm...@lycosDOT.it> ha scritto nel messaggio
news:phhe11t6cpe7jtv5u...@4ax.com...

passa nel costruttore del tuo pannello un riferimento alla finestra

passa nel costruttore del tuo pannello un riferimento alla finestra
ciao, grazie per la risposta ;)
ma sono alle prime armi con la terminologia di Java (e in generale
nell'OO)...
cosa intendi per 'riferimento'? 
thanks :)

Ciao,
io ho un problema simile...
Voglio chiudere la JDialog con un bottone, ma non ci riesco...
La seguente classe funziona se il setModal e' false, ma se lo metto true 
non mi sente + il bottone...
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
public class erroreInsert extends JDialog {
     public erroreInsert() {
         this.setTitle("Errore");
         this.setModal(true);
         this.setBounds(200, 200, 100, 100);
         Container pjd = getContentPane();
         pjd.setLayout(new BorderLayout());
         pjd.add("Center", new JLabel("Ricontrolla i dati"));
	JButton bjd = new JButton("OK");
         pjd.add("South", bjd);
         bjd.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent ev) {
                 System.out.println("Hai clickato ok");
 
		//Istruzione x la chiusura della JDialog
             }
         });
     }
}
Grazie 1000
-- 
Willy
email: 
willy...@libero.it

"chok" <samm...@lycosDOT.it> ha scritto nel messaggio
news:6amg11ph5th2q736u...@4ax.com...

In pratica intendo che il costruttore del tuo pannello che ha il pulsante
per la chiusura deve avere come parametro un JFrame e quando creerai
l'oggetto JPanel gli passerai il nome del tuo frame.
Esempio
public class MioFrame extends JFrame
{
    ....
    ....
    ....
    MioPannello p = new MioPannello(this);
    //this è il "riferimento" alla finestra.
    //Se la tua classe non estende JFrame, ma la
    //finestra la crei con JFrame f = new JFrame();
   //allora dovevi passargli f come parametro
}
public class MioPannello extends JPanel
{
    private JFrame frame;
    public MioPannello(JFrame aFrame)
    {
        frame=aFrame;
        ....
        }
}
spero di essere stato chiaro......altrimenti dimmi pure cosa non ti torna.
daniele.

spero di essere stato chiaro......altrimenti dimmi pure cosa non ti torna.
chiarissimo: funziona alla perfezione! ;)
grazie ancora!
ciao

 email: 
willy...@libero.it
ho provato sia true che false.....ma ho usato sl la finestra di dialogo, non
ho creato una finestra che chiama la dialog.
daniele

 


> //Istruzione x la chiusura della JDialog


Grazie per la tua disponibilita' :))
-- 
Willy
email: 
willy...@libero.it

 
Ora funziona!
Ho risolto cosi':
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class erroreInsert extends JDialog {
	JButton bjd = new JButton("OK");
	public erroreInsert() {
		setTitle("Errore");
		setVisible(true);  //<<--- Se lo elimino mi apre la 						   //JDialog 
ma non mi funziona il 	
				   //bottone...
		initialize();
		gestisciEventi();
	}
	public void initialize() {
 
		this.setModal(true);
		this.setBounds(400, 100, 100, 100);
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		Container pjd = getContentPane();
		pjd.setLayout(new BorderLayout());
		pjd.add("Center", new JLabel("Ricontrolla i dati"));
		pjd.add("South", bjd);
		setVisible(true);
	}
	public void gestisciEventi() {
		ascoltaButton ba = new ascoltaButton();
		bjd.addActionListener(ba);
	}
	public class ascoltaButton implements ActionListener {
		public void actionPerformed(ActionEvent ev) {
			System.out.println("Hai clickato ok");
			setVisible(false);
		}
	}
}
-- 
Willy
email: 
willy...@libero.it

 ha scritto nel messaggio
news:4n4Sd.927679$35.34...@news4.tin.it...

Figurati.
Per quel poco che so cerco sempre di aiutare chi ne ha bisogno.
Magari potresti aiutarmi anche tu...guarda il mio post intitolato layout
manager.
Ciao;-)
daniele.