我正在寻找类似于ImageJ或Adobe Dialog Manager中使用的GenericDialog的东西。我们的目标是创建一个对话框的模板(字段的数量,类型等-需要的信息,而不是它的呈现方式),并将其发送到view-class。该视图可以是基于Swing的GUI或简单的控制台UI。用户填写字段,并且对话框模板的源中的值可见。有没有一些Java库可以实现这一点?我知道有GenericDialog,但我不确定是否可以在我的项目中使用它(因为它是ImageJ的一部分)。更重要的是,我觉得它对我来说太“重”了。
发布于 2012-11-16 01:05:43
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)。
尽管如此,如果您认为ImageJ1.x的GenericDialog“太重”,那么您很可能会对ImageJ2的命令框架(或实际上任何其他解决此问题的解决方案;我不认为它能比GenericDialog更“轻”)有相同的感觉。但在这种情况下,也许ImageJ2实现会给您一些关于如何使用自己的代码的想法。
发布于 2012-08-20 17:27:46
ImageJ中的泛型对话框扩展了java.awt.Component,所以这不会与您要求对话框模板与视图解耦的要求相矛盾吗?
Java的集合将允许您封装信息、类型等。
java.util.LinkedHashMap<String,Type> dialog = new java.util.LinkedHashMap<String,Type>;其中键是字段的名称,值是字段的类型。
要创建基于swing的对话框,请参见
http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html
https://stackoverflow.com/questions/12029073
复制相似问题