更改Tab和JTable之间的线条颜色
问题描述:
我正在自定义我的JTabbedPane
的视觉外观,其中包含三个JTables
。更改Tab和JTable之间的线条颜色
虽然我成功着色选项卡的颜色,包括更改文本颜色,但我通过创建自己的BasicTabbedPaneUI
更改了选项卡边框颜色。但仍然有一条线路保持原来的状态。该行位于选项卡和表格之间。见下图:
我说的是标有三个豆蔻红点线。 这条线是什么?如果它是边界,它属于哪里?我没有找到设置颜色的方法。我检查了JTable
,他JTabbedPane
,甚至JTabbedPane
的组件。
你可以看到,这条蓝线仍然存在。 有谁知道如何改变颜色? 删除它将是另一个可以接受的选择。
答
可能TabbedPane.contentAreaColor
(在TabbedPane.contentBorderInsets
的顶部):
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;
public final class BasicTabbedPaneColorTest {
private JComponent makeUI() {
//UIManager.put("TabbedPane.contentBorderInsets", new Insets(10, 10, 10, 10));
//UIManager.put("TabbedPane.contentBorderInsets", new Insets(0, 10, 10, 10));
UIManager.put("TabbedPane.contentAreaColor", Color.GREEN);
UIManager.put("TabbedPane.highlight", Color.RED);
JTabbedPane tabs = new JTabbedPane();
tabs.setUI(new BasicTabbedPaneUI());
//tabs.setBackground(Color.ORANGE);
//tabs.setOpaque(true);
tabs.addTab("JTable", new JScrollPane(new JTable(20, 3)));
tabs.addTab("JTree", new JScrollPane(new JTree()));
return tabs;
}
public static void main(String... args) {
EventQueue.invokeLater(() -> {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new BasicTabbedPaneColorTest().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
});
}
}
太棒了!它与设置'UIManager.put(“TabbedPane.contentAreaColor”,Color.GREEN);' – KJaeg