hobbit_be schreef op 19 March 2003 @ 14:51:
finalize gaat niet omdat de child kan zeggen dat ie niet geremoved mag worden (ie dataconsistency) en hij moet wel direct iets kunnen doen.. (als reactie op UI-event)
die listener had ik al gezien maar not applicable... ik zal dus maar gaan snuffelen in remove he

...
lovely Swing... (puke)
Dit is absoluut geen argument om te zeggen dat Swing sucks imho. Swing zit duidelijker in elkaar dan menig ander widgetset. Kijk maar naar die bagger die bij delphi zit, of bij .NET. Het is wel gecompliceerd en daardoor kan er enige verwarring over ontstaan. Als je swing nou bagger vond omdat het zo traag is als de pest en dat het nergens op lijkt, dan kan ik je wel gelijk geven
En ik zie verder niet in waarom je niet met een component listener kan werken. Als je wilt dat een component iets gaat doen als hij geremoved wordt, dan zou je hem die componentlistener interface kunnen laten implementeren.
code:
1
2
3
4
5
6
7
8
9
10
11
| class LiefComponent extends Component{
public LiefComponent(){
addComponentListener(new ComponentListenerImpl());
}
private class ComponentListenerImpl extends ComponentAdatper{
public void removed(ComponentEvent e){
//leuke actie:
}
}
} |
Trouwens een component kan meerdere keren gefinalized worden. Als een component voor gc in aanmerking komt, dan wordt de finalizer aangeroepen. Als je toch vind dat je component niet verwijderd kan worden, dan zorg je ervoor dat er een strongreference naar dat object is.
zie
dit voor meer info over gc.
[edit]
oeps.. removed(ComponentEvent e) is geen methode in die interface
[
Voor 18% gewijzigd door
Alarmnummer op 19-03-2003 15:10
]