【问题标题】:Refresh tab name from result of getName()从 getName() 的结果刷新选项卡名称
【发布时间】:2012-03-18 20:36:09
【问题描述】:

我正在向JTabbedPane 添加一个自定义组件。选项卡的标题由组件中的getName() 确定。现在在某个时候getName() 的结果发生了变化,但选项卡标题不会自动刷新(正如预期的那样)。我怎样才能做到这一点?

【问题讨论】:

    标签: java swing data-binding jtabbedpane


    【解决方案1】:

    每次更改组件的名称时,它都可能抛出PropertyChangeEvent。将组件添加到选项卡式窗格后,您可以向组件添加PropertyChangeListener,监听其name 属性的变化,并相应地更新选项卡名称。

    不过,当组件从选项卡式窗格中移除时,不要忘记移除侦听器。

    【讨论】:

    • "并相应地更新选项卡名称。" - 我应该怎么做?我现在从未在窗格上调用setTitleAt(),但窗格本身在组件上调用getName()。当然我可以直接打电话给setTitleAt(),但是这样对吗?
    • 没关系,我已经查看了选项卡式窗格源。它只是在添加选项卡时调用getName() 一次,之后再也不调用,所以看来我应该只使用setTitleAt()
    • @Bart van Heukelom 我也看到了,但我失去了链接并忘记了 ***,但这个问题与外观和感觉有关,
    • @BartvanHeukelom 听起来好像 tabbedPane 也是一个自定义组件?如果是这样,propertyChangeListener 的最佳位置是自定义 tabbedPane 本身:让它在插入时将侦听器注册到组件并在移除时取消注册
    • @kleopatra 不,这是默认的JTabbedPane
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多