Hallo,
folgendes: Bei einem Doppelklick auf ein Element eines Trees lasse ich gewisse Details in einem TabFolder anzeigen. Das klappt auch problemlos. Ich setze in diesem Fall den Inhalt des TabItems neu:
DetailProvider#getDetails() liefert an dieser Stelle ein neues Composite, dass ich dem Tab zuweise.
Nach meinem Verständnis muss ich nun doch das alte Composite disposen oder ist das nicht nötig?
... liefert eine Exception:
Wenn ich nix dispose, läuft das ganze natürlich zufriedenstellend, aber das wäre doch recht unsauber. Oder wird bei setControl() implizit dispose() aufgerufen? Ich bin mir da unsicher...
MFG byto
folgendes: Bei einem Doppelklick auf ein Element eines Trees lasse ich gewisse Details in einem TabFolder anzeigen. Das klappt auch problemlos. Ich setze in diesem Fall den Inhalt des TabItems neu:
Code:
tab.setControl(DetailProvider.getInstance().getDetails(tabFolder, o));
DetailProvider#getDetails() liefert an dieser Stelle ein neues Composite, dass ich dem Tab zuweise.
Nach meinem Verständnis muss ich nun doch das alte Composite disposen oder ist das nicht nötig?
Code:
tab.getControl().dispose();
Code:
java.lang.NullPointerException
at de.tubs.jlsc.gui.MainWindow$4.handleEvent(MainWindow.java:213)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3125)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2758)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
at org.eclipse.jface.window.Window.open(Window.java:787)
at de.tubs.jlsc.gui.MainWindow.run(MainWindow.java:402)
at de.tubs.jlsc.gui.MainWindow.main(MainWindow.java:407)
Wenn ich nix dispose, läuft das ganze natürlich zufriedenstellend, aber das wäre doch recht unsauber. Oder wird bei setControl() implizit dispose() aufgerufen? Ich bin mir da unsicher...
MFG byto