【问题标题】:VAADIN -- Add TextField dynamicalVAADIN -- 动态添加 TextField
【发布时间】:2012-08-26 02:24:22
【问题描述】:

在 VAADIN 组件中,用户应该可以选择插入一个到 N 个问题的答案。

最初应该有一个文本字段用于第一个带有按钮的答案(“添加另一个答案”)

在 Button Push 时,应该为第二个答案添加一个新的文本字段,依此类推...

我的问题是,如何在按钮推送时实现新文本字段的动态加载?

我添加了一张我如何想象这个问题的图片。

【问题讨论】:

    标签: java vaadin


    【解决方案1】:

    只需向按钮添加一个单击侦听器即可将文本字段添加到布局中。基本 Vaadin,没有技巧。

    如果您的代码不起作用,请将其添加到您的问题中。

    【讨论】:

    • 但是,如果我通过侦听器添加文本框,我如何从中读取值。我的意思是,如何为生成的文本框设置唯一 ID?
    • 创建文本字段时,您必须记住它,例如在将 id 映射到文本字段的映射中。这不是 Vaadin 特有的。
    【解决方案2】:

    将 Textfield 置于其自己的垂直布局中,每当单击按钮时,将新的 Textfield 添加到垂直布局中。

    当检索答案时,获取垂直布局的引用并调用 getChildren(),这将返回垂直布局中的所有 TextField。

    类似这样的:

    List<String> answers = verticalLaout.getChildren()
                                       .stream()
                                       .map(TextField::getValue)
                                       .collect(asList());
    

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2011-01-21
      • 2013-10-25
      • 2014-08-13
      相关资源
      最近更新 更多