JJ,
díky,
taky mě to napadlo. Přidám nějakého posluchače, třeba aby při vyjmutí z
kontejneru ten panel nastavil na NULL. Nevíte, jestli se tím automaticky zruší i
komponenty na tom panelu? (Pokud ne, není to takové neštěstí. Můžu je projít a
zrušit přímo - vím kolik jich je.)
Díky,
Petr Zajíc
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Petr Synek
Sent: Tuesday, June 28, 2005 3:43 PM
To: Java
Subject: RE: Swing - problém s komponentou JPanelthis.setVisible(false);
container.remove(this);
je OK.Je ale treba jeste z nadrazene tridy (tam kde jste vas odvozeny panel vytvoril) nastavit tuto referenci na null.Napr.class NadrazenaTrida {private JPanel panel;public NadrazenaTrida() {this.panel = new MujJPanel();...}}a po zavreni panelu zde (v nadrazene tride) tuto referenci vynulovat.Tj.this.panel = null;Ve vasem pripade je tedy treba nejak notifikovat nadrazenou tridu, ze JPanel byl zrusen a reference na nej se ma vynulovat.Petr
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Petr Zajíc
Sent: Tuesday, June 28, 2005 13:04
To: [email protected]
Subject: Swing - problém s komponentou JPanelPotřebuji poradit (podotýkám, to je začátečnický dotaz, s Javou si hraju pár neděl...)V mojí Swing aplikaci mám třídu, která rozšiřuje JPanel. V určitém okamžiku nahrávám instanci této třídy a umisťuju ji do nějakého containeru. Ta moje třída má na panelu ještě celou řadu hejblat, pár čudlíků a jednu JTable. Ve finále se může jednat o dost velkého žrouta systémových prostředků.Zatím jsem nepřišel na to, jak celou tuto instanci dostat z paměti, když ji nepotřebuji. Scénář je ten, že na panelu je tlačítko, které když zmáčknu, tak potřebuji, aby celý panel zmizel do věčných lovišť, zmizel i z kontejneru a uvolnil místo soudruhům, kteří přijdou po něm. Stávající kód:public void actionPerformed(ActionEvent e) {
if (e.getSource()==cmdOk){
this.setVisible(false);
container.remove(this);
container.revalidate();
}Nevím, ale zdá se mi, že tohle sice moji instanci skryje, ale zůstane i nadále v paměti. Takže mám otázku:Jak to provést (něco jako this=null (špatná syntaxe) nebo dispose(), jenže tuto metodu JPanel nemá...)Předem díky za tipy,Petr Zajíc
________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail Server.
http://www.nod32.com
