【问题标题】:JTabbedPane: Components before and after the tabs themselvesJTabbedPane:选项卡本身之前和之后的组件
【发布时间】:2010-10-27 16:39:33
【问题描述】:

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

我自己已经提出了按钮的想法,但我宁愿有一个 JTabbedPane,因为它确实是这样,但在侧面装饰了一个按钮或图标。

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

【问题讨论】:

    标签: java user-interface google-chrome jtabbedpane


    【解决方案1】:

    我终于问了Substance LaF/laf-widget 的 Kirill,他是如何设法在装饰 JTabbedPanes 的 laf-widget 的选项卡前放置一个按钮的,这是他的回答:

    它依赖于 BasicTabbedPaneUI.tabAreaInsets 字段 为按钮腾出空间,并且 按钮的自定义 setBounds 组件将自己定位在那个 地区。

    更多代码见 TabOverviewButton 和 TabOverviewDialogWidget 类 laf-widget 项目。

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

    谢谢,基里尔!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 它有?!太棒了 - 我刚刚从 Stackoverflow 上的另一个答案中指出了 Jide 的方向,但还没有查看 API - 屏幕截图根本没有暗示这样的功能。我猜有人会使用 Jide 失去 LaF?
      • 这取决于你在做什么。 JIDE 组件在尊重 LaF 方面做得很好。我们将它与合成纤维一起使用,而且它是无缝的。
      • 它是如何依赖的?您是否有一些文档所在位置的指针?我似乎找不到它。我现在尝试将它与 Substance 一起使用,但它公然不尊重这一点。它似乎使用了一些自己的“vsnet”UI 来绘制。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多