0

我正在开发一个 ImageJ 插件,我遇到了这个问题。

我正在使用GenericDialog文本字段,因此用户可以输入文件的文件系统路径。在 Windows 上,路径包含反斜杠。当我为这个插件录制宏时,我得到了这个结果:

run("Example ", "path=C:\results.txt");

反斜杠没有转义,当我尝试运行记录的命令时,反斜杠被解释为转义字符,显然找不到文件。

有没有一种方法GenericDialog可以正确记录包含反斜杠的文本字段?或者我不能使用GenericDialog并且必须自己实现宏录制功能?

编辑:有问题的示例插件:

import ij.IJ;
import ij.ImagePlus;
import ij.gui.GenericDialog;
import ij.plugin.filter.ExtendedPlugInFilter;
import ij.plugin.filter.PlugInFilter;
import ij.plugin.filter.PlugInFilterRunner;
import ij.process.ImageProcessor;

public class Example_ implements ExtendedPlugInFilter {

  public int showDialog(ImagePlus imp, String command, PlugInFilterRunner pfr) {
    GenericDialog gd = new GenericDialog("Example");
    gd.addStringField("path", "C:\\results.txt");
    gd.showDialog();

    String path = gd.getNextString();
    IJ.showMessage("path = " + path);
    return PlugInFilter.DONE;
  }

  public void setNPasses(int nPasses) {
  }

  public int setup(String arg, ImagePlus imp) {
    return PlugInFilter.NO_IMAGE_REQUIRED;
  }

  public void run(ImageProcessor ip) {
  }
}

当我运行从这个插件记录的宏时,它显示“path = C:esults.txt”。

4

1 回答 1

0

此错误已在最新版本的 ImageJ (1.47t) 中得到解决。在此版本中,如果您从GenericDialog包含 Windows 路径的 StringField 中录制宏,则录制的值将正确转义。

于 2013-06-13T08:12:36.910 回答