【发布时间】:2019-01-14 17:19:27
【问题描述】:
我正在用 Java 编写代码,并且正在使用 Vaadin 8 扩展。
我有一个 Vaadin 组合框,它运行良好。但我不仅想从我的组合框中选择项目,还想选择书面输入。这意味着我想将组合框用作下拉菜单和文本编辑字段。
经过一些研究,我认为在将某些内容写入 Combo Box 后无法获得其值。文本编辑字段仅用于在下拉菜单中进行搜索。 如果我键入不属于下拉菜单的内容,则值为 null。
但似乎可以使用 setNewItemProvider 方法将新项目添加到组合框下拉菜单。
有一些示例使用旧方法 getNewItemHandler,但它们似乎不适用于最新的 Vaadin 版本 8。方法 setNewItemsAllowed 不再是 Vaadin 8 的一部分。
谁能为 Vaadin 8 提供新方法 setNewItemProvider 的示例?
【问题讨论】:
-
能够通过写入组合框来搜索项目实际上是组合框的默认行为。正如 Gergely 的回答中所链接的,您可以使用
comboBox.setTextInputAllowed(boolean)打开和关闭此行为,但默认情况下它是打开的。查看these examples! -
对不起,我想我还没有说清楚。我不仅想搜索项目,还想通过 .getValue() 提取不属于项目的字符串,这意味着我还想使用 ComboBox 作为 TextEdit 字段。
-
您不能使用它直接编辑现有项目,但您可以使用它来创建新项目。 here 是
comboBox.setNewItemProvider()的一个很好的示例实现。