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