gpt4 book ai didi

java - Vaadin 组合框 getValue() 没有得到我想要的

转载 作者:行者123 更新时间:2023-11-29 12:15:49 24 4
gpt4 key购买 nike

所以我试图从保存汽车登记号的组合框中获取选定的值。以便用户可以选择AAA-111、BBB-222等。

现在我希望能够掌握用户在组合框中选择的值,但我似乎找不到以“AAA-111”形式获取它的方法。当我使用 getValue() 时,Vaadin 希望将其指定为“entiteetit.Korjaustiedot@4024af35”。我没有用它。

我希望能够对其进行编码,如下所示:好的,选择了“AAA-111”,现在只需按一下按钮即可在屏幕上获取 AAA-111 的信息。有什么想法如何从组合框中获取值吗?

ComboBox select = new ComboBox("Choose car");

container = new BeanItemContainer<Korjaustiedot>(Korjaustiedot.class, korjaukset); // gets the data from my mysql database

select.setContainerDataSource(container); //puts the data from the List <Korjaustiedot> into the container

select.setItemCaptionPropertyId("registernumber"); //chooses the data from the column "registernumber"

this.addComponent(select);
select.addValueChangeListener(event -> // Java 8
this.addComponent(new Label("Selected " +
event.getProperty().getValue())));
// this label only shows: Selected entiteetit.Korjaustiedot@4024af35

最佳答案

当您以相同的方式创建组合框时,您将执行以下操作:

  1. 创建项目集合 - 汽车 - 将包含在您的组合框中 - BeanItemContainer<Korjaustiedot>(Korjaustiedot.class, korjaukset) 。请注意,它不是将显示的字符串集合,而是真实的模型对象,例如用户、汽车、帐户等。
  2. 您说项目将如何在组合框中显示将在组合框中表示。只有字符串表示形式,而不是整个对象。有多个选项可供选择,但在您的情况下,您说每个项目的“registernumber”字段将用作项目字符串表示形式。您可以通过 select.setItemCaptionPropertyId("registernumber") 来完成此操作.
  3. 如果您通过 getProperty().getValue() 访问所选项目返回的不是客户端可以看到的所选项目的字符串表示形式。相反,您会返回整个 Car 对象。因此,如果您调用 toString()就可以得到 "entiteetit.Korjaustiedot@4024af35"因为它是复合对象而不是字符串。如果您想要注册号,您可以将其作为通过 get Property().getValue() 获得的对象的字段读取。 .

关于容器和元素 Collection 的详细描述可以在瓦丁之书 - Collecting Items in Containers 中找到。

关于java - Vaadin 组合框 getValue() 没有得到我想要的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com