我有一个 JTabbedPane,当用户选择它时,我需要替换选项卡 1 组件。 我无法在应用程序启动时直接添加正确的组件,因为我没有完整的数据来生成它。
我需要这样的东西:
int tabTochange = 1;
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if (tabbedPane.getSelectedIndex() == tabTochange)
{
JComponent component = generataComponent();
tabbedPane.removeTabAt(tabTochange); // Remove old tab
// add new one
tabbedPane.insertTab("title", null, component, "tip", tabTochange);
}
}
});
但是这段代码不起作用,它会删除选项卡 1 之后的其他选项卡并复制它。
最佳答案
使用 getComponentAt(tabTochange)
或 getSelectedComponent()
,而不是 removeTabAt()
和 insertTab()
获取组件的引用。根据需要更新组件,可能使用 CardLayout
。
关于java - 更改选择选项卡上的 JTabbedPane 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854603/