保持 JTabbedPane 的指定颜色

Keeping the specified color for JTabbedPane

我在 JTabeedPane 中使用此布局,背景如图所示。背景颜色未更改为所示颜色。我在设计的时候是下面的结构

JFrame (Background color: [0,115,153])
 JPanel (Background color: [3,50,67])
  JPanel (Background color: [16,110,173])
   ...
  JPanel  (Background color: [3,50,67])
   JTabbedPane  (Background color: [3,50,67])
    Tab 1,2,3   (Background color: [3,50,67])

白色未在任何前景色或背景色中启用,但在那里仍然可见。我在保持组件 Opaque 并禁用 Opaque 的同时对其进行了测试,但没有效果。我该如何删除它?

恐怕这并不像人们想象的那么微不足道,因为这种格式完全由外观管理。
但是您可以调用 tabbedPane.setUI(yourCustomUI); 来设置自定义 UI。

我准备了一个 UI 供你使用,希望它能安全一些(见内联评论自定义):

// your code...

tabbedPane.setUI(new MinimalisticTabbedPaneUI());

// your code...

public static class MinimalisticTabbedPaneUI extends BasicTabbedPaneUI {

    // paints the border around the currently visible content
    @Override
    protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex) {
        // do nothing
    }

    // paints the border around each tab
    @Override
    protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) {
        // only paints a border if the tab is selected, edit this to add your personal formatting
        if(isSelected){
            super.paintTabBorder(g, tabPlacement, tabIndex, x, y, w, h, isSelected);
        }
    }
}