ändern Sie die aktive Registerkarte Farbe im JTabbedPane
Wie kann ich die Farbe ändern, der Reiter ist ausgewählt ? und Ihre Grenze ? in diesem Fall ist es Arbitros
Registerkarte, die ist blau, wie kann ich dies ändern ? Ich bin mit JTabbedPane
innen JFrame
ich fand diese, sondern seine nicht funktioniert UIManager.put("TabbedPane.selected", Color.white);
was mache ich falsch ?
public VentanaPrincipal_vista() {
super("Ventana Principal");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(1000, 500);
this.setResizable(false);
this.setUndecorated(true);
this.setBackground(Color.BLUE);
//add tabbedPane and tabs .
tabs = new JTabbedPane();
tabs.setBackground(new Color(83, 83, 83));
tabs.setForeground(new Color(255, 255, 255));
tabs.setBorder(null);
UIManager.put("TabbedPane.selected", Color.white);
this.add(tabs);
menuBar = new BGMenuBar();
menuBar.setColor(new Color(83, 83, 83));
this.setJMenuBar(menuBar);
menu = new JMenu("File");
menu.setForeground(Color.white);
menuBar.add(menu);
close = new JMenuItem("Close");
menu.add(close);
close.addActionListener(this);
close.setBackground(new Color(83, 83, 83));
close.setForeground(new Color(255, 255, 255));
op1 = new JMenuItem("option 1");
op1.setBackground(new Color(83, 83, 83));
op1.setForeground(new Color(255, 255, 255));
menu.add(op1);
this.setLocationRelativeTo(null);
this.setVisible(true);
}//end of constructor
- Vielleicht wie die dieser?
- wie ich schon sagte, ich will wissen, wie Sie ändern Sie die Registerkarte, die ausgewählt wurde, nicht die backgroun von allen Registerkarten in allgemeiner oder spezifischer Art und Weise
- Auswahl-Hervorhebung erfolgt durch den UI-delegate.
Du musst angemeldet sein, um einen Kommentar abzugeben.
für mich,die unterhalb Lösung gearbeitet, ich habe gerade den UImanager s TabbedPane.ausgewählte color-Eigenschaft vor der Schöpfung von JTabbedPane-Objekt.
Siehe diesen link, ich bin sicher, es wird auch für Sie arbeiten.
http://esus.com/changing-the-color-of-the-selected-tab-of-a-jtabbedpane/
Einen Kommentar zu CodeyX1 Antwort:
für mich ist die uimanager nicht ausgewählten Zustand arbeitet mit diesen Werten (ohne die "Tab" - Wort in der Mitte):
Bitte überprüfen Sie die folgende Methode aus der java-docs für ein JTabbedPane
http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html#eg
void setBackgroundAt(int, Color)
Versuchen Sie dies:
Werfen wir einen Blick auf dieses code-snippet fügt hinzu, dass die 5 tabs ein Programm starten:
Den ersten Bereich, fordern Sie Hilfe bei Ihrer in-Programm in die "for" - block. Ich werde versuchen zu erklären, dies in einer Weise, dass Sie Sie verstehen.
Die ersten beiden Zeilen definieren die Standard hintergrund-und Vordergrundfarbe für jeden inaktiven Registerkarte. Sie können diese ändern, um eine Farbe Ihrer Wahl.
Die Dritte Zeile fügt eine Registerkarte mit den folgenden Attributen:
In der vierten Zeile gilt die Standard-Hintergrundfarbe
Die Letzte Zeile gilt die Standard-Vordergrundfarbe. HINWEIS: diese Attribute können nicht geändert werden, mit
UIManager
. Ich habe versucht, ein paar alternative Ansätze, die aber nicht erfolgreich war. Verdammt, ich wünschte, es war ein einfacher Weg, dies zu erreichen.Werfen wir nun einen genaueren Blick auf das snippit von code, der definiert die Darstellung der aktiven und inaktiven Registerkarten:
In diesem Teil des Codes die folgenden Schritte aus:
Überschreiben Sie die Benutzeroberfläche durch die Nutzung dieser code-block unten
panel.setUI(new BasicTabbedPaneUI()
{
//place the code from step 2 here
}
Geben Sie die Eigenschaften des Abschnitts:
highlight = Color.lightGray;
lightHighlight = Color.white;
shadow = Color.gray;
darkShadow = Color.darkGray;
focus = Color.black;
Genauso wie in der erste Schnipsel, den Sie diese Attribute ändern, wie gut. Hier ist ein wenig
Tipp: jeder Reiter hat einen kleinen, gepunkteten Rahmen um die Registerkarte Etikett, dies markiert den Schwerpunkt. Wenn
Sie verstecken wollen, diese Markierung legen Sie einfach Ihre Farbe zu entsprechen, die von der aktiven Registerkarte
was nun den Fokus hat.
Verwenden Sie die
UIManager
zum ändern der folgenden Attribute:UIManager.put("TabbedPane.selected", Color.gray);
UIManager.put("TabbedPane.unselectedTabBackground", Color.black);
Dies wird Ihnen erlauben, änderung von active und inaktive Registerkarte Hintergründe während Programm
runtime.
Waren Sie mit der
UIManager
was ist der beste Weg, das zu erreichen, was Sie versuchtzu tun. Mit diesem Stück code hier können Sie die änderungen, die Sie suchen
für Sie, aber Sie haben, führen Sie Schritt 2, bevor Sie eine dieser änderungen wird in der Lage sein zu nehmen
Effekt.
UIManager.put("TabbedPane.selectedForeground", Color.xxx)
undUIManager.put("TabbedPane.unselectedTabForeground", Color.xxx)
nicht ändernVordergrundfarbe die Vordergrundfarbe bleibt gleich.
UIManager.put("TabbedPane.selected", Color.xxx)
wird ändern Sie die Hintergrundfarbedie aktive Registerkarte und der
UIManager.put("TabbedPane.unselectedTabBackground")
wirdändern Sie die Hintergrundfarbe inaktiv tab.
Kopieren und fügen Sie diese zwei code-snippets in der Datei und ändern Sie wie Sie brauchen.
Ich würde empfehlen, dass Sie kopieren Sie den gesamten source-code oben und fügen Sie ihn in compiler und führen Sie es zuerst. Auf diese Weise werden Sie in der Lage zu sehen, was dieses Programm macht, und wenn Sie gehen zurück zu Ihrem ursprünglichen code, mit dem Sie arbeiten, werden Sie wissen, wo diese code-Schnipsel.
Hoffe, das hilft.
Wenn Sie Probleme mit diesem post ein SSCCE in Eure Antwort damit ich sehen kann, wo Sie in Schwierigkeiten sind.
Dank.