更改Tab和JTable之间的线条颜色

问题描述:

我正在自定义我的JTabbedPane的视觉外观,其中包含三个JTables更改Tab和JTable之间的线条颜色

虽然我成功着色选项卡的颜色,包括更改文本颜色,但我通过创建自己的BasicTabbedPaneUI更改了选项卡边框颜色。但仍然有一条线路保持原来的状态。该行位于选项卡和表格之间。见下图:

enter image description here

我说的是标有三个豆蔻红点线。 这条线是什么?如果它是边界,它属于哪里?我没有找到设置颜色的方法。我检查了JTable,他JTabbedPane,甚至JTabbedPane的组件。

只是为了显示,我能够访问什么,我绘制每个组件绿色。 enter image description here

你可以看到,这条蓝线仍然存在。 有谁知道如何改变颜色? 删除它将是另一个可以接受的选择。

可能TabbedPane.contentAreaColor(在TabbedPane.contentBorderInsets的顶部):

enter image description here

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); 
    }); 
    } 
} 
+0

太棒了!它与设置'UIManager.put(“TabbedPane.contentAreaColor”,Color.GREEN);' – KJaeg