我正在寻找类似于 ImageJ 或 Adobe Dialog Manager 中使用的 GenericDialog 的东西。目标是创建一个对话框模板(字段数、类型等——需要的信息,而不是它的呈现方式)并将其发送到 View 类。此 View 可能是基于 Swing 的 GUI 或简单的控制台 UI。用户填写的字段和值对于对话框模板的源是可见的。 是否有一些 Java 库可以实现这个? 我知道有 GenericDialog,但我不确定我是否可以在我的项目中使用它(因为它是 ImageJ 的一部分)。更重要的是,我觉得这对我来说太“重”了。
最佳答案
ImageJ2 project几乎完全按照您的描述提供:一种灵活的机制,用于执行具有类型化输入和输出参数的可运行操作(称为命令)。
您可以通过使用 @Parameter
注释来定义命令的输入和输出。 ImageJ 自动负责填写输入(通常通过使用对话框提示用户输入),以及在命令运行后显示输出。
如何从用户那里获取输入取决于哪个(如果有的话)用户界面与 ImageJ 上下文相关联。我们已经实现了对 Swing 的完整小部件支持,以及“纯”AWT(即 java.awt
小部件)、Apache Pivot 和 Eclipse SWT 中的概念验证实现。
一些例子:
- GradientImage.java : 一个简单的示例命令
- ParameterTester.java : 执行多种类型参数的命令
所有代码均获得 BSD-2 许可。截至撰写本文时,包含该框架的 ij-core
JAR 约为 334KB。包含 Swing 小部件的 ij-ui-swing
JAR 大约有 150KB,但它还包含其他可以删除的东西(为了比较,ij-ui-pivot
JAR 只有 ~30KB)。
综上所述,如果您认为 ImageJ 1.x 的GenericDialog
“太重”,那么您很可能对 ImageJ2 的命令框架(或者实际上任何 这个问题的其他解决方案;我认为它不会比 GenericDialog
更“轻”。但在那种情况下,也许 ImageJ2 实现会给您一些关于如何推出自己的想法。
关于java - 类似于 GenericDialog/ADM 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029073/