JTabbedPane的java问题
我对以下代码有问题:
public void detachTab(TabComponent tc) {
Logger.add("Detaching Tab");
for (int i = 0; i < globalTabbedPane.getTabCount(); i++) {
if (tc == globalTabbedPane.getTabComponentAt(i)) {
Logger.add("Detaching panel: " + i);
SeparateWindow sw = new SeparateWindow((JPanel) globalTabbedPane.getComponentAt(i));
sw.setVisible(true);
globalTabbedPane.remove(i);
return;
}
}
}
它只是从JTabbedPane中删除一个选项卡,并将其放置在一个单独的窗口中。非常自我嘲弄。问题是该方法还删除了它下面的选项卡。我不明白这怎么可能。也许我忽略了什么
# 1 楼答案
我没有测试过这个,但是
可能是将
Component
添加到窗口中,将其从JTabbedPane
中删除,此时tabbedpane可能正在删除关联的选项卡,这意味着索引位置已更改,因此当您调用您现在正在删除以下选项卡
您可以尝试获取对组件的引用,删除它并创建窗口