我正在开发一个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”。
答案 0 :(得分:0)
此错误已在最新版本的ImageJ(1.47t)中解决。在此版本中,如果您在StringField中记录包含Windows路径的GenericDialog
中的宏,则会正确转义记录的值。