JTabbedPane:选项卡本身之前和之后的组件
-
23-08-2019 - |
题
这与问题类似 如何在 Java Swing 中构建 Google-chrome 选项卡和菜单栏界面? (我想完成同样的任务),但更重要的是:如何将组件放置在 JTabbedPane 中选项卡的前面和后面?
我自己已经提出了按钮的想法,但我宁愿有一个 JTabbedPane,因为它确实如此,但侧面装饰有按钮或图标。
我见过 laf 小工具 Kirill 的项目为几个 LaF 做了类似的事情(选项卡左侧的放大镜图标)。然而,我必须承认,我还不够熟练,无法理解他是如何做到这一点的 - 而且这似乎是一个有点复杂的过程,其中一个人“物理地”改变有问题的 LaF(字节码操纵它),注入 laf - 将小部件内容放入 UI 委托中 - 我仍然不知道 JTabbedPane 或 TabbedPaneUI 实际上是如何调制以注入该图标/按钮的。
解决方案
我最后问物质的基里尔的LaF 他如何管理/ LAF的小部件把一个按钮在LAF-小部件,装饰JTabbedPanes翼片的前方,这是他的回答是:
它依赖于 BasicTabbedPaneUI.tabAreaInsets场 以腾出空间按钮, 按键的自定义的setBounds 部件将自己定位在该 区域。
有关更多的代码,见TabOverviewButton 和TabOverviewDialogWidget班 该LAF-Widget项目。
在一般情况下,选项卡式窗格UI 委托是的至少一个 因为它有吸引力的人,以增强 有很多私人和包 保护的方法
谢谢,基里尔!
其他提示
JIDE 具有选项卡式窗格作为它们的组分套件的一部分暴露该功能简单setBeforeComponent()和setAfterComponent()方法。
有是它在这里演示: http://www.jidesoft.com /products/1.4/jide_demo.jnlp