我在我的应用程序中使用 JTabbedPane。我添加了两个选项卡,它们是自定义类“ContentPanel”的实例。这扩展了 JPanel 并设置了背景、边框等。基本上这意味着我不必设置每个我想应用此配色方案的 JPanel 的属性。我注意到不仅它们的边框出现了,而且另一个边框(我认为它是蓝色的 - 至少在我的屏幕上)出现在这个边框周围,连接到选项卡“选择器”本身(即你点击的按钮得到适当的观点)。我想更改此边框,因为它与金色/棕色配色方案相比看起来很奇怪。有谁知道如何做到这一点?我试过 JTabbedPane.setBorder(Border b) 但这不起作用。这只是在整个事物周围设置了一个边框,包括选项卡选择器……这不是我想要的。
如有任何帮助,我们将不胜感激。
最佳答案
这些颜色在外观中定义。如果您查看 BasicTabbedPaneUI
的代码,您会注意到 installDefaults()
设置了一堆 protected Color
实例变量。它们在 L&F 中定义的键也可在此处获得。
protected void installDefaults() {
LookAndFeel.installColorsAndFont(tabPane, "TabbedPane.background",
"TabbedPane.foreground", "TabbedPane.font");
highlight = UIManager.getColor("TabbedPane.light");
lightHighlight = UIManager.getColor("TabbedPane.highlight");
shadow = UIManager.getColor("TabbedPane.shadow");
darkShadow = UIManager.getColor("TabbedPane.darkShadow");
//...
// a lot more stuff
//...
}
如果您不想定义自己的 L&F,您可以在选项卡式 Pane 中设置自定义 UI 委托(delegate):
myTabbedPane.setUI(new BasicTabbedPaneUI() {
@Override
protected void installDefaults() {
super.installDefaults();
highlight = Color.pink;
lightHighlight = Color.green;
shadow = Color.red;
darkShadow = Color.cyan;
focus = Color.yellow;
}
});
您当然可能想要更改这些颜色设置。按照设置,您将看到在何处使用了哪些变量。
关于java - JTabbedPane - 在选项卡周围设置默认边框..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3124474/