JTabbedPane: Komponenten vor und nach den Registerkarten selbst
-
23-08-2019 - |
Frage
Dies ist vergleichbar mit der Frage: Wie ein Google-chrome-Tabs und menubar Schnittstelle in Java Swing bauen (ich will das gleiche erreichen), aber mehr auf den Punkt:? Wie kann ich Komponenten vor setzen und hinter den Registerkarten in einem JTabbedPane?
Ich habe schon kommen mit der Tasten-Idee selbst, aber ich habe lieber eine JTabbedPane haben, denn das ist wirklich das, was es ist, aber mit einem Knopf oder Symbolen auf den Seiten verziert.
Ich habe gesehen, dass das laf-Widget Projekt von Kirill so etwas wie es funktioniert (das Vergrößerungsglas Symbol links der Laschen) für mehrere LAFS. Allerdings muss ich zugeben, dass ich noch nicht gut genug versiert zu verstehen, wie er es tut - und auch wie es scheint, ein etwas kompliziertes Verfahren, wobei ein „physisch“ der LAF in Frage ändern (Bytecode manipuliert es), Einspritzen des laf -Widget Sachen in die UI Delegierten -. und ich weiß noch nicht, wie die JTabbedPane oder TabbedPaneUI moduliert tatsächlich das Symbol / Taste zu injizieren
Lösung
Ich fragte schließlich Kirill von Substance LaF / laf-Widget, wie er es schafft einen Knopf vor den Registerkarten in dem LAF-Widget zu setzen, die JTabbedPanes, und dies ist seine Antwort ziert:
Es stützt sich auf die BasicTabbedPaneUI.tabAreaInsets Feld um Platz zu schaffen für die Schaltfläche, und benutzerdefinierte setBounds der Schaltfläche Komponente zu positionieren, dass sich Bereich.
Für weitere Code finden TabOverviewButton und TabOverviewDialogWidget Klassen in das LAF-Widget-Projekt.
Im Allgemeinen ist die Registerteilfenster UI Delegierten ist eine der am wenigsten attraktivsten, da sie zu verbessern hat eine Menge von privaten und Paket geschützte Methoden
Danke, Kirill!
Andere Tipps
JIDE haben einen Registerteilfenster als Teil ihrer Komponenten-Suite, die diese Funktionalität so einfach setBeforeComponent aussetzt () und setAfterComponent () Methoden.
Es gibt eine Demo davon in hier: http://www.jidesoft.com /products/1.4/jide_demo.jnlp