java image控件_java-imageJ插件参数

ImageJ插件参数传递问题及解决方法
本文档描述了一位开发者在尝试将参数传递给ImageJ插件时遇到的问题。他们发现无论通过何种方式传递参数,插件总是接收到空字符串。经过研究,他们发现可以通过Macro.getOptions()方法获取传入的参数字符串,但无法直接传递多个参数。最后,作者提出了一种临时解决方案,即将所有参数合并为一个字符串并通过空格分隔,然后在插件内部进行分割。尽管找到了工作方式,但作者仍在寻求更优雅的解决方案。

您好,我正在尝试将参数传递给ImageJ插件.但是,无论我通过什么,程序都将参数字符串视为空.我在互联网上找不到有关该问题的任何文档.

我的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 plugins文件夹中.

我可以使用ImageJ userInterface(插件>分段>测试)来调用它,宏记录器将使用的命令放入:

run("Test");

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

Starting plugin Test

args: ..

我可以在.ijm文件中手动运行相同的命令,并获得相同的结果.

但是,当我运行以下宏命令时:

run("Test", "my_string");

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

Starting plugin Test

args: .. //

它应该显示在什么地方(至少我期望它做什么)

Starting plugin Test

args: .my_string.

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

非常感谢

编辑

嘿,我找到了一种绕过该方法的方法:

使用Macro.getOptions():此方法将检索传入参数的字符串到插件.

但是,我仍然找不到传递超过1个字符串参数的方法.我尝试重载PlugIn.run()方法,但是它根本不起作用.

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

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

我看不到一种更方便的解决方法.我不敢相信这种情况有多么愚蠢.

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

解决方法:

This method is called when the plugin is loaded. ‘arg’, which may be blank, is the argument specified for this plugin in IJ_Props.txt.

要在从宏代码运行插件时使用options参数,应使用GenericDialog来获取选项,或者(如您所知,这很困难)使用了辅助功能Macro.getOptions().

标签:macros,imagej,plugins,java

来源: https://codeday.me/bug/20191029/1962519.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值