图片 JtabbedPane http://img850.imageshack.us/img850/7339/immaginedya.png
如何删除 a 的选定边距JTabbedPane
?:(
图片 JtabbedPane http://img850.imageshack.us/img850/7339/immaginedya.png
如何删除 a 的选定边距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>
我通过查看源代码找到了关键的TabbedPaneTabArea 。SynthTabbedPaneUI
加载方式:
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,这可能会很有用...
总结一下:
使用它来禁用整个应用程序中的边距,或者在创建新的选项卡式窗格之前不使用“.getDefaults()”。
UIManager.getDefaults().put("TabbedPane.contentBorderInsets", new Insets(0,0,0,0));
UIManager.getDefaults().put("TabbedPane.tabAreaInsets", new Insets(0,0,0,0));
UIManager.getDefaults().put("TabbedPane.tabsOverlapBorder", true);