Vaadin 7-> com.vaadin.ui.CheckBox->“ .getValue()”总是返回“ false”

时间:2019-10-08 13:08:20

标签: checkbox vaadin vaadin7

我在Wildfly应用程序服务器上将Vaadin7 com.vaadin.ui.CheckBox与Java 1.8一起使用。

我有一个具有以下复选框配置的PopUpDialog:

checkBox1.addValueChangeListener(event -> // Java 8
                LOGGER.info("property Value: "+ event.getProperty().getValue().toString()+
                        " getValue Value: "+checkBox1.getValue()));

当我在WebBrowser的用户界面中单击checkBox1时,就会调用ValueChangeListener

第一个property Value "event.getProperty().getValue().toString()"返回复选框的正确true/false状态。

但是我想在我的PopUpDialog类方法中使用的checkBox1.getValue()返回复选框的true/false == clicked/not clicked状态,即使我在{{1}中调用它,也总是返回false。 }

有人可以帮我为什么“ getValue()”方法不能返回正确的状态吗?

-----------------编辑---------------

一种解决方案是使用ValueChangeListener设置复选框的值:

ValueChangeListener

但是通常应该在没有侦听器手动设置的情况下设置该值,对吗?

1 个答案:

答案 0 :(得分:0)

什么是PopUpDialog类?是一些附加组件吗? (没有通过短暂的谷歌搜索找到自己)

我用PopupView尝试了您的情况,并且总是正确返回值。 Vaadin版本是7.7.13

CheckBox cb=new CheckBox();
cb.addValueChangeListener(e->{
            System.out.println("Event value" + e.getProperty().getValue());
            System.out.println("cb value: " + cb.getValue());
});
VerticalLayout popupContent = new VerticalLayout();
Button getValue=new Button("Value", e->{
            Notification.show("CB value:" + cb.getValue());
});
popupContent.addComponents(cb,getValue);
PopupView popup = new PopupView("Pop it up", popupContent);
layout.addComponent(popup);
setContent(layout);

我的示例中有什么我想念的吗?

编辑:当然,复选框应该返回正确的值。否则,这是一个错误