java向CustomComponent添加ValueChangeListener
我有一个自定义组件,希望向其中添加ValueChangeListener。 但是我对注册方法有一个问题
这是我的自定义组件
public class CustomComp extends CssLayout implements HasValue<HashMap<String, Boolean>>{
private String value;
@Override
public void setValue(String value) {
// TODO Auto-generated method stub
this.value = value;
}
@Override
public String getValue() {
// TODO Auto-generated method stub
return value;
}
@Override
public Registration addValueChangeListener(com.vaadin.data.HasValue.ValueChangeListener<String> listener) {
// TODO Auto-generated method stub
System.out.println("Value Changed");
return null;
}
@Override
public void setRequiredIndicatorVisible(boolean requiredIndicatorVisible) {
// TODO Auto-generated method stub
}
@Override
public boolean isRequiredIndicatorVisible() {
// TODO Auto-generated method stub
return false;
}
@Override
public void setReadOnly(boolean readOnly) {
// TODO Auto-generated method stub
}
@Override
public boolean isReadOnly() {
// TODO Auto-generated method stub
return false;
}
}
我想为我的组件创建一个对象,并像这样添加一个ValueChangeEvent,但我认为我必须更改addValueChangeListener,但我不知道具体如何更改。我知道调用该方法是因为执行了sysout“Value changed”。但是我想添加这样的侦听器
MyCustomComp myCustomComp = new MyCustomComp();
myCustomComp.addValueChangeEvent(event ->{...});
我已经看过其他的课程了,但是每门课都不一样
# 1 楼答案
您可以使用^{} 。它已经从
HasValue
实现了addValueChangeEvent
,您只需要提供方法来设置和获取值。只需记住使用setValue
方法设置您的值,否则不会触发触发值更改事件例如:
使用方法: