Hallo,
Die Klasse die du ansprichst ist
org.openide.awt.TabbedPaneFactoryDies ist eine Netbeans-Eigene IDE-Klasse. Das heißt du müsstest
an die Quell-Dateien von Netbeans gelangen um es nutzen zu können.
Mit 6.0 ist hier Netbeans 6.0 gemeint und nicht Java Rev. 6 ( eigentlich java 1.6 ).
Also wenn du an die Quellen deiner Netbeansplatform kommst und sie als jar-Datei/Bibliothek/Folder einbinden kannst
in dein Projekt dürfte dem Schließen des Tabs nichts mehr im Wege stehen.
Eine andere auch nicht schwere Lösung wäre es eine eigene JComponent als
Tab-Komponente zu übergeben:
- Code: Alles auswählen
public void setTabComponentAt(int index,
Component component)
Aus der API:
"
Sets the component that is responsible for rendering the title for the specified tab. A null value means JTabbedPane will render the title and/or icon for the specified tab. A non-null value means the component will render the title and JTabbedPane will not render the title and/or icon.
Note: The component must not be one that the developer has already added to the tabbed pane.
Parameters:
index - the tab index where the component should be set
component - the component to render the title for the specified tab
"
Hier kannst du jede beliebige Komponente übergeben. Natürlich machen riesige Panels keinen Sinn aber
ein JLabel mit Icon und Text schon ( Text linksbündig, das Icon dann rechts z.B. und ein schönes 'close'-icon ).
Dann kannst du mit nem Mauslistener definieren was beim draufdrücken auf das Label passieren soll.
Den listener registrierst du bei dem JPanel und überschreibst
- Code: Alles auswählen
public void mouseClicked( MouseEvent me ) {
// if ( me.getClickCount() ... )
// ...
// tabIndex musst du natürlich wissen
tabPane.remove( tabIndex );
}
// optional auch
public void mousePressed( MouseEvent me ) {
// falls du auch schon beim nur drücken aber nicht
// loslassen der Maus das Tab schließen möchtest
}
Wiedereinmal reicht ein Blick in die JavaDoc von Java und
ein Sprung zu JTabbedPane aus und Schwups
landen wir hier:
http://download.oracle.com/javase/tutorial/uiswing/components/tabbedpane.htmlWo auch sofort ein tabbed pane mit schließen button - in dem Fall - demonstriert wird.
Viele Grüße,
Olek