首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drjava:取消关闭是否是预期的?

drjava:取消关闭是否是预期的?
EN

Stack Overflow用户
提问于 2013-10-22 21:27:35
回答 1查看 34关注 0票数 0

每当我在drjava中做了一些编辑但没有保存文件后,当我试图关闭一个文件时,程序如预期的那样,给出一个对话框:“文件名已被修改。你想保存它吗?”

在许多情况下,我会在此时决定取消关闭并进行更多编辑,然后手动保存文件。

不幸的是,点击“取消”和点击“否”有相同的效果:窗口关闭而不保存,我丢失了我的工作。

这是drjava的预期行为吗?或者是否有一些选项可以选择/一些我可以用来解决问题的代码?虽然只要我记得它的行为是可以管理的,它仍然是相当不方便的。

EN

回答 1

Stack Overflow用户

发布于 2013-10-22 22:00:42

它是开源的,所以我们可以看看它的实现。下面是打开对话框的代码(省略了一些代码) from the newest branch

代码语言:javascript
复制
private boolean _fileSaveHelper(OpenDefinitionsDocument doc, int paneOption) {
  ...

  int rc = JOptionPane.showConfirmDialog(MainFrame.this, text, "Save " + fname + "?", paneOption);
  switch (rc) {
    case JOptionPane.YES_OPTION:
      boolean saved = false;
      if (notFound) saved = _saveAs(); 
      else saved = _save();
      if (doc != lastActive) {
        _model.setActiveDocument(lastActive);  // breaks when "if" clause omitted
      }
      return saved;
    case JOptionPane.NO_OPTION:
      if (doc != lastActive) {
      _model.setActiveDocument(lastActive);  // breaks when "if" clause omitted
    }
      return true;
    case JOptionPane.CLOSED_OPTION:
    case JOptionPane.CANCEL_OPTION:
      return false;
    default:                         // never executed
      throw new RuntimeException("Invalid option: " + rc);
  }
}

“不”和“取消”有不同的情况,所以看起来它们确实试图正确地处理它。因此,它很可能是一个bug。该方法由此方法引用

代码语言:javascript
复制
public boolean quitFile(OpenDefinitionsDocument doc) { 
  return _fileSaveHelper(doc, JOptionPane.YES_NO_CANCEL_OPTION); 
}

它在MainFrame.java之外的某个地方被引用。我不倾向于研究它,因为我甚至没有安装Java IDE。如果您愿意,您可以派生项目并使用Eclipse之类的IDE来快速找到对该方法的引用。说到这一点,我建议只使用Eclipse,因为我记得Dr. Java在代码完成和格式化等基本功能方面几乎没有提供。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19519253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档