停用计时器后,将最后一个选项卡拖到新的(不存在)框架中时发现了不一致之处。那是因为其他地方放置的不好,这使得负责检查和关闭原始frame的代码无法运行。我已经对它进行了这样的修改,并且到目前为止,它没有计时器:
@Override public void mouseReleased(MouseEvent e) { JComponent c = (JComponent) e.getSource(); if (c.getTopLevelAncestor().getBounds().contains(e.getLocationOnScreen())) { // do nothing, the drop point is the same frame } else { DragTabframe dtf = getTargetframe(e.getLocationOnScreen()); if (dtf == null) { dtf = new DragTabframe(); dtf.init(); dtf.setLocation(e.getLocationOnScreen()); }// else { DragTabframe fromframe = dragTabManager.getCurrentframe(); fromframe.removeTabComponent(c); JTabbedPane tp = fromframe.getTabbedPane(); if (tp.getTabCount() == 0) { fromframe.setVisible(false); fromframe.dispose(); } //} dtf.addTabComponent(dragTabManager.getCurrentTitle(), c); dtf.pack(); dtf.setVisible(true); } }[…]
public DragTabManager() { //timer = new Timer(200,actionListener); //timer.start();}我不认为应该有其他问题,尽管我不知道您提到的关闭JVM问题。



