【问题标题】:How to get coordinates of a tab header in the jTabbedPane?如何在 jTabbedPane 中获取选项卡标题的坐标?
【发布时间】:2012-01-29 02:42:54
【问题描述】:

我有一种方法可以在玻璃窗格上绘制动画图像来模拟图标的脉冲。它需要一个图像(我使用组件的图标)和边界(一个按钮 f.e.)。 我需要这个区域:

我知道那个按钮有getBounds(),标签有类似的东西吗?或者可能是图标的坐标。哪一个都好。

【问题讨论】:

  • 你应该告诉我们你为什么想要这些坐标。你打算用他们做什么?也许有比您正在考虑的更好的解决方案。
  • 我编辑了我的帖子。提前谢谢!
  • 我知道我迟到了,但 @bunnyjesse112 请考虑接受 Krzysztof 的回答,以使未来的读者受益。

标签: java swing user-interface jtabbedpane


【解决方案1】:

我遇到了类似的问题。我需要标签的高度。 int tabHeight = myTabPanel.getUI().getTabBounds(myTabPanel, 0).height;.

【讨论】:

    【解决方案2】:

    你必须创建自己的BasicTabbedPaneUI,因为这些方法是受保护的,无法从外部覆盖这些方法,(来自Standard Java API

    【讨论】:

    • 感谢您的回答。你能提供一个小例子吗?或者我需要在 BasicTabbedPaneUI 中覆盖的方法的名称是什么?
    • 1) 嗯已更改为 google.com/…,抱歉实现的 squid 不允许我打开此链接,2) 也许更好的解决方法是 aephyr aephyr.googlecode.com/svn/trunk
    • 我不明白。什么是埃菲尔?解决方法在哪里?我是弱智,请详细解释!
    • 您可以创建自己的 UI 类,但这不是必需的。两年后 Krzysztof 的答案应该被提上日程。道歉;投反对票只是为了让另一个答案的分数更高。
    【解决方案3】:

    @mKorbel 关于 UI 委托是正确的,但付出的努力是巨大的。或者,您可以利用显示为here 的动画图标或引用here 的自定义选项卡组件。

    【讨论】:

      【解决方案4】:

      我知道按钮有getBounds(),标签有类似的吗?

      参见BasicTabbedPaneUIgetTabBounds() 方法。您不需要为了获取这些数据而自定义类。如果您打算在 UI 中制作动画,则只需要自定义 UI。

      问题是选项卡的大小将只是文本的大小。因此,除非您也将空图标添加到选项卡,否则您的图标不会有空白空间。如果你打算这样做,那么你可以使用Animatied Icon 类,它允许你组合图标来执行动画。

      【讨论】:

        猜你喜欢
        • 2017-12-15
        • 1970-01-01
        • 2010-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-24
        相关资源
        最近更新 更多