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源代码可以看到的那样-您无法在选项卡式窗格中更改此边距