2

我正在寻找类似于 ImageJ 或 Adob​​e Dialog Manager 中使用的 GenericDialog 的东西。目标是创建一个对话框的模板(字段数量、类型等 - 需要的信息,而不是它的呈现方式)并将其发送到视图类。此视图可能是基于 Swing 的 GUI 或简单的控制台 UI。用户填写的字段和值对于对话框模板的源是可见的。是否有一些 Java 库可以实现这一点?我知道有 GenericDialog,但我不确定是否可以在我的项目中使用它(因为它是 ImageJ 的一部分)。更重要的是,我觉得这对我来说太“重”了。

4

2 回答 2

1

ImageJ2项目几乎提供了您所描述的内容:一种灵活的机制,用于执行具有类型输入和输出参数的可运行操作(称为commands )。

@Parameter您可以通过使用注解标记命令的输入和输出来定义它们。ImageJ 自动负责填写输入(通常通过使用对话框提示用户输入),以及在命令运行后显示输出。

如何从用户那里获取输入取决于哪个(如果有)用户界面与 ImageJ 上下文相关联。我们已经实现了对 Swing 的完整小部件支持,以及“纯”AWT(即java.awt小部件)、Apache Pivot 和 Eclipse SWT 中的概念验证实现。

一些例子:

所有代码均获得 BSD-2 许可。ij-core在撰写本文时,包含该框架的JAR 约为 334KB。包含 Swing 小部件的ij-ui-swingJAR 大约为 150KB,但它还包含其他可以删除的内容(相比之下,ij-ui-pivotJAR 只有大约 30KB)。

综上所述,如果您认为 ImageJ 1.x 的GenericDialog“太重”,那么您很可能会对 ImageJ2 的命令框架(或任何其他解决此问题的解决方案)有同样的感觉;我认为它不会变得“更轻” "比GenericDialog)。但在这种情况下,也许 ImageJ2 实现会给您一些关于如何滚动自己的想法。

于 2012-11-15T17:05:42.693 回答
0

ImageJ 中的通用对话框扩展了 java.awt.Component,所以这是否与您将对话框模板与视图分离的要求相矛盾?

Java 的集合将允许您封装信息、类型等。

java.util.LinkedHashMap<String,Type> dialog = new java.util.LinkedHashMap<String,Type>;

其中键是字段的名称,值是字段的类型。

要创建基于摆动的对话框,请参见

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

于 2012-08-20T09:27:46.417 回答