Java/Groovy类自描述以构建用户界面元素

Java/Groovy类自描述以构建用户界面元素,java,groovy,user-controls,annotations,Java,Groovy,User Controls,Annotations,我想描述一个Java类的预期输入,该类旨在执行某项任务, 在Java类本身中。目的是能够在加载此类时直接生成用户界面 例如,假设基本接口是Task(实现Runnable): 我可以使用一些反射从中获取参数名,然后构建 用户界面的相关部分,例如: <form> <label for="length">Length: </label> <input type="text"name="length" id="length" />

我想描述一个Java类的预期输入,该类旨在执行某项任务, 在Java类本身中。目的是能够在加载此类时直接生成用户界面

例如,假设基本接口是
Task
(实现
Runnable
):

我可以使用一些反射从中获取参数名,然后构建 用户界面的相关部分,例如:

<form>
    <label for="length">Length: </label>
         <input type="text"name="length" id="length" /><br />
    <label for="width">Width: </label>
         <input type="text"name="width" id="width" />
</form>
这对于额外信息也很有用,例如多项选择:

@Input(label="Colour", options={"Red", "Green", "Blue"})
我还希望能够生成其他类型的用户界面,例如命令行,基于以下信息获得如下选项样式:

java TaskProcessor BuildRectangle --help

usage: BuildRectangle --height= [ --width=10 ] [ --color= ]
Options:
    --height=   ...
    --width=    This is the width of the rectangle (defaults to 10).
    --color=    Red, Blue, Green.
是否有任何标准的注释集或通常的框架来实现这一点(或者可能是完全不同的方法),最好与Java和Groovy兼容

我希望这个类尽可能是自包含的(即避免配置文件)。 (我不一定对定义这样一项任务的输出以及如何实现它感兴趣
应该显示。)

您可能需要查看。它与你的想法有很多重叠之处。特别是,它允许您以声明方式指定UI布局,并自动将UI中的数据绑定到Java对象。

您可以尝试这样做,但可能是错误的框架!可能有点过火。

我真的应该将我与Guice和Apache CLI组合的东西开源…@LouisWasserman,你也应该提供更多细节,这听起来很神秘:-)(我的重点不是CLI,我只是提到它,因为我想敞开大门。)这似乎是JavaBeans背后的初衷。它不起作用。这是我为另一个项目准备的,而且效果很好。不过,我相信它仍有很大的改进空间。谢谢,我认为那篇文章中的链接是非常有用的指针,特别是,尽管这可能有点过头了。谢谢,我想要的是一些自包含的东西,但这似乎依赖于一个额外的YAML文件。不过,这是一个有趣的指针。
@Input(label="Colour", options={"Red", "Green", "Blue"})
java TaskProcessor BuildRectangle --help

usage: BuildRectangle --height= [ --width=10 ] [ --color= ]
Options:
    --height=   ...
    --width=    This is the width of the rectangle (defaults to 10).
    --color=    Red, Blue, Green.