我是Vaadin的新手,我正在尝试将文本添加到用户输入到文本字段的文本中。还有一个vaadin对象,如果用户输入一个大名字,我可以用它自动调整文本字段的大小。
例如:John非常适合文本字段,但在文本字段中不会显示Bobwehadababyitsaboy的全名。下面是我到目前为止在按钮点击时填充文本字段的代码。
protected void init(VaadinRequest vaadinRequest) {
final VerticalLayout layout = new VerticalLayout();
final TextField name = new TextField();
name.setCaption("Type your name here:");
final TextField message = new TextField();
message.setCaption(name.getValue());
Button button = new Button("Click Me");
button.addClickListener( e -> {
layout.addComponent(message);
});
layout.addComponents(name, button);
答案 0 :(得分:1)
您可以使用TextChangeListener
,这样可以检查输入文本的长度并相应调整文本字段的大小。
TextField tf = new TextField();
tf.addTextChangeListener(new TextChangeListener() {
@Override
public void textChange(TextChangeEvent event) {
//
int len = event.getText().length();
if (len > 100) {
event.getComponent().setWidth("350px");
}
else if (len > 50) {
event.getComponent().setWidth("250px");
}
else {
event.getComponent().setWidth("150px");
}
}
});
tf.setTextChangeEventMode(TextChangeEventMode.EAGER);