Java 如何禁用ImageJ中的对话框?

Java 如何禁用ImageJ中的对话框?,java,imagej,Java,Imagej,我经常使用ImageJ查看由一个文件夹中的许多单个图像组成的图像堆栈。我可以将相应的文件夹拖放到ImageJ GUI中,它创建了一个可滚动的可视化,这非常方便。但这可能更方便,因为每次我这样做时,都会出现一个对话框,询问我是否要将文件夹中的所有图像作为堆栈打开。是否可以将其默认为“是”?我需要更改源代码并自己编译吗。。?如果是这种情况,我可以从哪里开始查找?建议向Imagej Wayne rasband的作者提出功能请求,例如在Github存储库: 或者您可以编写一个小宏(使用带有菜单操作的宏

我经常使用ImageJ查看由一个文件夹中的许多单个图像组成的图像堆栈。我可以将相应的文件夹拖放到ImageJ GUI中,它创建了一个可滚动的可视化,这非常方便。但这可能更方便,因为每次我这样做时,都会出现一个对话框,询问我是否要将文件夹中的所有图像作为堆栈打开。是否可以将其默认为“是”?我需要更改源代码并自己编译吗。。?如果是这种情况,我可以从哪里开始查找?

建议向Imagej Wayne rasband的作者提出功能请求,例如在Github存储库:

或者您可以编写一个小宏(使用带有菜单操作的宏记录器!),该宏也可以安装在ImageJ中。比如:

run("Image Sequence...", "open=C:\\images\\ sort");
以下是宏文档:


要禁用源代码中的对话框,请查找源文件
ij>plugin>dragandrop.java
。从它的
openDirectory
方法中,删除与对话框相关的行,并将布尔值分配给
convertorgb
virtualStack
,这两个值通常由现在已失效的对话框窗口中的复选框定义。代码现在应该如下所示:

    private void openDirectory(File f, String path) {
        if (path==null) return;
        if (!(path.endsWith(File.separator)||path.endsWith("/")))
            path += File.separator;
        String[] names = f.list();
        names = (new FolderOpener()).trimFileList(names);
        if (names==null)
            return;
        convertToRGB = false;
        virtualStack = false;
        String options  = " sort";
        if (convertToRGB) options += " convert_to_rgb";
        if (virtualStack) options += " use";
        IJ.run("Image Sequence...", "open=[" + path + "]"+options);
        DirectoryChooser.setDefaultDirectory(path);
        IJ.register(DragAndDrop.class);
    }
我是用ImageJ 1.51p做的。源代码可以下载。进行这些更改后,只需运行
build.xml
ant脚本


请注意,编写宏可能会提供一种更干净、更便于携带的方法来实现这一点——请参阅Marcel的答案,以便进一步阅读

我现在接受了我自己的答案,因为我觉得你的答案提供了一些提示,而不是一个明显的解决办法。不过,功能请求是一个很好的建议,让我们看看效果如何!