Potř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();
}
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
