JTabbedPanes中的JToolBars;停靠和取消停靠时选项卡名称不正确

时间:2012-11-17 16:25:22

标签: java swing jtabbedpane jtoolbar

我对事件监听和GUI很新,所以我很难搞清楚这一点。

我有一个JTabbedPane,我添加了3个组件。这些组件是JToolBars,它允许我将它们从JTabbedPane拖到浮动窗口中。这将从选项卡式窗格中删除选项卡。当我将JToolBar拖回窗格时,将重新创建选项卡。 但是,它现在的名称不正确。该名称对应于ToolBar停靠的TabbedPane的哪一侧;北,南,东或西。

有人能推荐一种检测JToolBar已被重新锁定然后更新标签标题的正确方法吗? 到目前为止,我已经在tabbedPane上实现了一个更改侦听器,但无法解决合适的事件。

干杯。

解决: 解决方案是使用ContainerListener来检测通过实现的componentAdded方法添加的组件。当一个组件被添加到JTabbedPane时,我调用了一个方法,用组件名称更新选项卡名称,通过.setName()设置。

public void componentAdded(ContainerEvent added) {
    updateTabs();
}

public void updateTabs() {
    for (int i = 0; i < tabbedPane.getComponents().length; i++) {
        tabbedPane.setTitleAt(i,
                tabbedPane.getComponents()[i].getName());
    }
}

1 个答案:

答案 0 :(得分:0)

解决方案是使用ContainerListener来检测通过实现的componentAdded方法添加的组件。当一个组件被添加到JTabbedPane时,我调用了一个方法,用组件名称更新选项卡名称,通过.setName()设置。

public void componentAdded(ContainerEvent added) {
    updateTabs();
}

public void updateTabs() {
    for (int i = 0; i < tabbedPane.getComponents().length; i++) {
        tabbedPane.setTitleAt(i,
                tabbedPane.getComponents()[i].getName());
    }
}