JTabbedPane:标签本身之前和之后的组件

时间:2009-05-20 16:08:56

标签: java user-interface google-chrome jtabbedpane

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

我自己已经想出了按钮 -​​ 想法,但我宁愿拥有一个JTabbedPane,因为它确实是它的样子,但是边上有一个按钮或图标。

我已经看到Kirill的laf-widget项目为几个LaF做了类似的事情(标签左边的放大镜图标)。但是,我必须承认,我还不够精通,无法理解他是如何做到的 - 而且这似乎是一个有点复杂的过程,其中一个“物理”改变了有问题的LaF(字节码操纵它),注入了laf -widget进入UI委托 - 我仍然不知道如何实际调制JTabbedPane或TabbedPaneUI以注入该图标/按钮。

2 个答案:

答案 0 :(得分:1)

我终于向Kirill询问了Substance LaF / laf-widget如何设法在装饰JTabbedPanes的laf-widget中的标签前放置一个按钮,这是他的回复:

  

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

     

有关更多代码,请参阅TabOverviewButton   和TabOverviewDialogWidget类   laf-widget项目。

     

通常,选项卡式窗格UI   代表是最少的代表之一   有吸引力的,因为它增强   有很多私人和包   受保护的方法

谢谢,基里尔!

答案 1 :(得分:1)

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

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