在我的应用程序中,我需要一个包含大量内容的弹出窗口,这些内容不完全适合浏览器窗口,并且有一个滚动条。
我已经尝试使用浏览器窗口开启器显示弹出窗口,但遇到了以下问题(
enter link description here
).
按照评论中的建议,我将浏览器窗口开启器更改为模式窗口。
由此产生的主要观点是:
和模态视图:
模式窗口包含200个文本字段。乍一看,一切看起来都很好,但如果我向下滚动窗口并尝试输入数据,例如,在字段22中,则滚轮将展开到窗口的开头:
添加窗口的代码:
按钮addClickListener(e->{
TestForm subForm=new TestForm();
Window subWindow = new Window("460006801");
subWindow.setContent(subForm);
subWindow.center();
subWindow.setModal(true);
UI.getCurrent().addWindow(subWindow);
});
测试表格:
public class TestForm extends FormLayout implements Serializable{
public Button save = new Button("Save");
public TestForm() {
for(int i = 0; i < 200; i++) {
TextField textField = new TextField("field " + i);
addComponent(textField);
}
}
public void saveConfigs() {
System.out.print("Save ");
}
}
当然,我真正需要的是,当更改文本框中的值时,页面上的焦点保持在同一位置,而不是滚动到开头。