这类似于问题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以注入该图标/按钮。
答案 0 :(得分:1)
我终于向Kirill询问了Substance LaF / laf-widget如何设法在装饰JTabbedPanes的laf-widget中的标签前放置一个按钮,这是他的回复:
它依赖于 BasicTabbedPaneUI.tabAreaInsets字段 为按钮腾出空间,并且 自定义setBounds的按钮 组件在其中定位 区域。
有关更多代码,请参阅TabOverviewButton 和TabOverviewDialogWidget类 laf-widget项目。
通常,选项卡式窗格UI 代表是最少的代表之一 有吸引力的,因为它增强 有很多私人和包 受保护的方法
谢谢,基里尔!
答案 1 :(得分:1)
JIDE有一个选项卡式窗格作为其组件套件的一部分,它将此功能公开为简单的setBeforeComponent()和setAfterComponent()方法。