Sie können paintContentBorderTopEdge in MyTabbedPaneUI überschreiben, damit keine der Registerkarten ausgewählt wird. Dies ist keine schöne Lösung, aber das Hacken von UI-Klassen bietet sich meiner Erfahrung nach selten an:)
%Vor%Der richtige Weg wäre, Custom Look & amp; Fühle nur . Aber wenn du mit %code% spielen willst, dann vielleicht dieser Beitrag kann Ihnen dabei helfen.
Erste (Teil-) Lösung.
Ich habe den "Positionierungs" -Code gefunden.
Es ist die Methode %code% in %code% , eine innere Klasse von BasicTabbedPaneUI. Die Methode ist extrem komplex, aber das Gute ist, dass der Teil, der die Registerkarte "vorzieht", gut kommentiert und in seiner eigenen überschreibbaren Methode isoliert wird! Es ist %code% .
Erstellen Sie eine Klasse, die nichts tut, anstatt die Komponente zu erhöhen, ist so einfach wie:
%Vor%
Beachten Sie, dass es sich um eine innere Klasse von MyTabbedPane handeln muss. Es muss durch Überschreiben von MyTabbedPane.createLayoutManager:
instanziiert werden %Vor% Sehr einfach und tatsächlich funktioniert ... außer für einen Fall.
Der createLayoutManager instanziert TabbedPaneLayout, wenn die tabLayoutPolicy WRAP_TAB_LAYOUT ist, instanziiert jedoch TabbedPanelScrollLayout, wenn tabLayoutPolicy SCROLL_TAB_LAYOUT ist. Letzteres hat private und keinen geschützten Zugriff, daher ist es nicht möglich, es zu unterklassifizieren!
Meine createLayoutManager-Implementation verliert scrollbares Verhalten.
Sie können HTML-Tags wie folgt in den ersten Parameter einfügen:
%code%
Ich möchte das Aussehen der Registerkarten in JTabbedPane anpassen.
Ich möchte vom einfachsten und klarsten Verhalten ausgehen: keine Grenzen, einfarbig
Das Problem ist, dass eine Unschönheit immer noch bleibt: die Tabs leichte Randüberlappung.
Sie sehen, dass, seit die zweite Registerkarte ausgewählt ist, sie "in den Vordergrund" gebracht wird. Dies wird durch eine geringfügige Überlappung erreicht. Gibt es eine (nicht knifflige) Möglichkeit, dieses Verhalten zu deaktivieren?
einfacher, testbarer Code (nur Import korrigieren):
%Vor%}