繁体   English   中英

imageJ插件参数

[英]imageJ plugin argument

您好我正在尝试将参数传递给我的ImageJ PlugIn。 但是无论我传递什么,参数字符串都会被程序认为是空的。 我在互联网上找不到关于这个问题的任何文件。

我的Java插件看起来像这样,编译得很好。

import ij.plugin.PlugIn;

public class Test implements PlugIn {
    public void run(String args) {

        IJ.log("Starting plugin Test");
        IJ.log("args: ." + args + ".");

    }
 }

我编译,制作.jar文件并将其放入ImageJ插件文件​​夹中。 我可以使用ImageJ userInterface(插件>分段>测试)调用它,宏录制器将使用以下命令:

run("Test");

然后我的代码被执行,日志窗口按预期弹出:

Starting plugin Test
args: ..

我可以在.ijm文件中手动运行相同的命令,并获得相同的结果。 但是,当我运行以下宏命令时:

run("Test", "my_string");

我在日志窗口中得到相同的结果:

Starting plugin Test
args: ..  //  <- I would like to get "my_string" passed there 

它应该显示的位置(至少我期望它做什么)

Starting plugin Test
args: .my_string. 

所以我的问题是:如何将参数传递给PlugIn,尤其是如何访问它们? 非常感谢


编辑


嘿,我找到了绕过它的方法:

使用Macro.getOptions():此方法将检索参数传递给插件的字符串。 但是,我仍然找不到传递超过1个字符串参数的方法。 我尝试重载PlugIn.run()方法,但它根本不起作用。

我的快速解决方法是将所有参数放在1个字符串中,并用空格分隔。 然后我拆分这个字符串:

String [] arguments = Macro.getOptions().split(" ");

我没有看到更方便的解决方法。 我无法相信这种情况有多愚蠢。

如果您有更好的解决方案,请随时分享! 谢谢

您将ij.plugin.Pluginrun(String arg)方法与ImageJ宏命令run("command"\\[, "options"\\]) IJ.run(String command, String options) ,后者调用IJ.run(String command, String options)

ij.plugin.Plugin#run(String arg)的文档中,它说:

加载插件时会调用此方法。 'arg',可能为空,是IJ_Props.txt中为此插件指定的参数。

因此, arg是一个可选参数,您可以在IJ_Props.txt或插件的plugins.config文件中使用它来为插件的不同功能分配不同的菜单命令(另请参阅斐济维基上的优秀文档 )。

要在从宏代码运行插件时使用options参数,您应该使用GenericDialog来获取选项,或者(因为您显然已经学会了很难)使用辅助函数Macro.getOptions()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM