【发布时间】:2013-06-13 16:12:36
【问题描述】:
我正在开发一个 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”。
【问题讨论】:
-
这显然是宏记录器中的一个错误。如果您向ImageJ mailing list 报告此问题,很有可能会很快得到解决。
-
使用最新版本的 Fiji (ImageJ 1.47s),当我运行命令 File > Import > Results...。您是否检查过您的 ImageJ 版本是否是最新的?我的 ImageJ 不知道“导入结果”命令,而只知道“结果...”,您确定您使用的是正确的命令吗?
-
Import results在这种情况下不是内置命令,而是我正在开发的插件。我很快就会在问题中添加一个 SSCCE。