与GenericDialog / ADM类似的东西

时间:2012-08-19 18:52:25

标签: java user-interface imagej

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

2 个答案:

答案 0 :(得分:1)

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

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

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

一些例子:

所有代码均获得BSD-2许可。在撰写本文时,包含该框架的ij-core JAR大约为334KB。包含Swing小部件的ij-ui-swing JAR大约为150KB,但它包含的其他东西也可以被删除(为了比较,ij-ui-pivot JAR只有大约30KB)。

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

答案 1 :(得分: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