【问题标题】:Dynamic form creation from XML file - JFrame Java Swing从 XML 文件创建动态表单 - JFrame Java Swing
【发布时间】:2013-06-24 17:08:15
【问题描述】:

我需要一个 java swing 工具,它可以基于 XML 文件动态构建表单,然后编写一个新的 XML 文件。 XML 文件包含字段类型和值等信息。

例如,该工具将读取定义用户名、ID 和登录名文本框的 XML。表单会显示这一点,当点击保存按钮时,它会将用户为每个字段输入的值保存到一个新的 XML 文件中。

这是一个非常简单的工具,我猜可能已经有一些东西了。有人知道类似的例子吗?

编辑:(添加的 XML 文件示例)

要读取的传入 XML 文件:

[XML]
  [PARAMS]
    [PARAM]
      [LABEL]Enter your user id:[/LABEL]
      [TYPE]textbox[/TYPE]
      [VALUE][/VALUE]
    [/PARAM]
    [PARAM]
      [LABEL]Enter the system id:[/LABEL]
      [TYPE]textbox[/TYPE]
      [VALUE][/VALUE]
    [/PARAM]
    [PARAM]
      [LABEL]Run all system checks?:[/LABEL]
      [TYPE]checkbox[/TYPE]
      [VALUE][/VALUE]
    [/PARAM]
  [/PARAMS]
[/XML]

然后将根据用户选择生成示例输出 XML 文件。

[XML]
  [PARAMS]
    [PARAM]
      [LABEL]Enter your user id:[/LABEL]
      [TYPE]textbox[/TYPE]
      [VALUE]johndoe01[/VALUE]
    [/PARAM]
    [PARAM]
      [LABEL]Enter the system id:[/LABEL]
      [TYPE]textbox[/TYPE]
      [VALUE]system01[/VALUE]
    [/PARAM]
    [PARAM]
      [LABEL]Run all system checks?:[/LABEL]
      [TYPE]checkbox[/TYPE]
      [VALUE]true[/VALUE]
    [/PARAM]
  [/PARAMS]
[/XML]

同样 - 传入的 XML 可能有多个参数/块。

【问题讨论】:

  • 既然您认为它如此简单,那您为什么不编写将用作输入的 XML 和您期望用作输出的 XML 并将 XML 文件添加到您的问题中呢?跨度>
  • 我以为我过去听说过类似的东西,但现在找不到任何参考。
  • 看看this thread
  • 有没有关于如何动态创建 JFrame 的示例?

标签: java xml swing dynamic jframe


【解决方案1】:

这是我到目前为止所做的,但仍需要一些修改,它使用纯逻辑。我没有包含我的 xml 解析器,但我已经创建了读取并返回键和值对象的解析器。

Frame.xml
<ui_login>
    <ui_type>
        JFrame
    </ui_type>
    <ui_width>
    750
    </ui_width>
    <ui_height>
    150
    </ui_height>
    <ui_visible>
    true
    </ui_visible>
</ui_login>

CreateFrame.java
if (key.equals("ui_type")) {
   jFrame = new JFrame();
}
if (key.equals("ui_width")) {
    width = Integer.parseInt(value);
}
if (key.equals("ui_height")) {
    // height = screenSize.height;
   height = Integer.parseInt(value);
   jFrame.setSize(width, height);
}
if (key.equals("ui_visible")) {
    jFrame.setVisible(true);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多