ImageJ GenericDialog - 录制宏时,不会转义包含反斜杠的字符串

时间:2013-05-29 09:13:18

标签: java api imagej

我正在开发一个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”。

1 个答案:

答案 0 :(得分:0)

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