在Nimbus外观中移除JTabbedPane边框/分隔线

时间:2014-05-07 16:56:04

标签: java swing look-and-feel jtabbedpane nimbus

我使用的是Nimbus L& F,我试图移除下图所示的边框,并将选项卡置于屏幕中心,类似于默认的Mac OS外观。但我还没有取得任何成功。

帮助任何人?

http://bildr.no/image/cUJBdW94.jpeg

2 个答案:

答案 0 :(得分:1)

不确定为什么你甚至想要这样做,但你想要做的是修改默认值。您可以查看所有默认设置的Nimbus Defaults。如果向下滚动页面,您将看到TabbedPanes的所有默认值。

enter image description here

您可以看到这些默认属性的所有绘画都是由Painter完成的。你可以将画家设置为null,因此它不会画任何东西。

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    if ("Nimbus".equals(info.getName())) {
        UIManager.setLookAndFeel(info.getClassName());
        UIManager.getLookAndFeelDefaults().put(
                "TabbedPane:TabbedPaneTabArea[Disabled].backgroundPainter", null);
        UIManager.getLookAndFeelDefaults().put(
                "TabbedPane:TabbedPaneTabArea[Enabled+MouseOver].backgroundPainter", null);
        UIManager.getLookAndFeelDefaults().put(
                "TabbedPane:TabbedPaneTabArea[Enabled+Pressed].backgroundPainter", null);
        UIManager.getLookAndFeelDefaults().put(
                "TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter", null);
        break;
    }
}

enter image description here

答案 1 :(得分:0)

这为我删除了这些边框,我想要的是改变它的风格,但不管......

tabbedPane.setUI(new javax.swing.plaf.basic.BasicTabbedPaneUI() {
          protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex) {};
    });