Image JtabbedPane http://img850.imageshack.us/img850/7339/immaginedya.png

如何删除JTabbedPane的选定边距? :(

最佳答案

由于Nimbus L&F基于Synth L&F,我想您必须为带选项卡的窗格选项卡区域加载自定义的Synth样式,并指定自定义插图(在您的情况下,左/右插图较小)。

您可以在此处阅读有关样式合成器的信息:
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/synth.html

我猜样式文件(您可以命名为任何文件-例如 style.xml )应如下所示:

<synth>
    <style id="tabAreaStyle">
        <insets top="0" left="0" right="0" bottom="0" />
    </style>
    <bind style="tabAreaStyle" type="region" key="TabbedPaneTabArea" />
</synth>

通过查看SynthTabbedPaneUI源代码,我找到了关键的 TabbedPaneTabArea

加载方式:
final NimbusLookAndFeel lookAndFeel = new NimbusLookAndFeel ();
lookAndFeel.load ( MyClass.class.getResource ( "style.xml" ) );

然后,您可以使用该L&F:
UIManager.setLookAndFeel ( lookAndFeel );

Edit1:我刚刚检查过-这种方式仅适用于SynthLookAndFeel,NimbusLookAndFeel似乎是最终版本,无论如何都无法重新设置样式。 Nimbus画家具有硬编码的值(包括要更改的选项卡区域插图)。

Edit2:同样,在非Synth L&Fs选项卡区域中,也使用 TabbedPane.tabAreaInsets 键从UIDefaults获取嵌入。如果您最终要更改L&F,这可能会很有用...

总结一下:

正如我从Nimbus源代码可以看到的那样-您无法在选项卡式窗格中更改此边距
  • 如果您使用非Synth L&F
  • ,则可以轻松更改此边距
  • 如果您使用SynthLookAndFeel本身,则可以轻松更改此边距
  • 10-04 12:16