2009-05-20 53 views
0

这与How to build a Google-chrome tabs and menubar interface in Java Swing?(我想完成相同)的问题类似,但更重要的是:如何将组件放在JTabbedPane的选项卡的前面和后面?JTabbedPane:选项卡本身之前和之后的组件

我已经想出了按钮 -​​ 我的想法,但我宁愿有一个JTabbedPane,因为这实际上是它是什么,但装饰着一个按钮或两侧的图标。

我已经看到,Kirill的laf-widget项目为几个LaF做了类似的事情(标签左边的放大镜图标)。然而,我必须承认,我还不够了解他是如何做到的 - 而且它看起来像一个有点复杂的过程,从而“物理上”改变了所讨论的LaF(字节码操纵它),注入了laf -widget的东西到UI委托 - 我仍然不知道如何实际调制JTabbedPane或TabbedPaneUI注入该图标/按钮。

回答

1

我最后问基里尔Substance LaF /他设法如何把一个按钮时,LAF-小部件,装饰JTabbedPanes标签前的LAF的小部件,这就是他的回答是:

它依赖 BasicTabbedPaneUI.tabAreaInsets字段 为按钮腾出空间,并且 自定义setBounds按钮 组件在 区域中定位。

欲了解更多的代码,请参阅laf-widget项目中的TabOverviewButton 和TabOverviewDialogWidget类 。

一般来说,标签面板UI 委托是最吸引人的 者之一,提升,因为它 有很多私人和打包 保护的方法

谢谢,基里尔!

1

JIDE将选项卡窗格作为其组件套件的一部分,它将此功能公开为简单的setBeforeComponent()和setAfterComponent()方法。

这里有一个演示:http://www.jidesoft.com/products/1.4/jide_demo.jnlp

+0

它有?!太棒了 - 我只是从Stackoverflow的另一个答案中指出了Jide的方向,但还没有得到检查API - 截图并没有提示这样的功能。我猜想用Jide会失去LaF吗? – stolsvik 2009-05-21 09:08:58

相关问题