Fir*_*zen 17 java layout vaadin web
我发现很多问题,人们都在问如何在Vaadin布局中隐藏滚动条,但我的问题是Vaadin没有向我显示任何滚动条.例如,我可以有这个代码:
HorizontalLayout layout = new HorizontalLayout();
layout.setSizeUndefined(); // I also tried setSizeFull()
for(Integer i = 1; i <= 15; i++) {
layout.addComponent(new Button("Test button #" + i.toString());
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行此代码时,当浏览器窗口太小而无法全部显示时,页面上的按钮就会被切断.永远不会出现滚动条.
我还尝试创建Panel,然后将我的布局添加到此面板.我已经测试了两个 - panel.addComponent(foo)而且panel.setContent(foo),我也尝试过设置panel.setScrollable(true).没有任何成功.
有没有办法将滚动条添加到某种Vaadin布局?我使用Vaadin 6.8.7.提前致谢!
有我的完整代码:
private ComponentContainer openZoomifyLayout() {
Panel panel = new Panel();
Panel panel2 = new Panel();
middlePanel = new MiddlePanel();
VerticalLayout mw = new VerticalLayout();
mw.setSizeFull();
HorizontalLayout sp = new HorizontalLayout();
Panel photos = new Panel();
photos.setSizeUndefined();
mw.addComponent(panel);
mw.addComponent(panel2);
mw.addComponent(sp);
mw.setExpandRatio(sp, 99);
mw.setExpandRatio(panel, 0);
mw.setExpandRatio(panel2, 0);
panel2.addComponent(middlePanel);
mw.setComponentAlignment(panel, Alignment.TOP_CENTER);
mw.setComponentAlignment(panel2, Alignment.TOP_CENTER);
photos.setContent(table);
photos.setScrollable(true);
sp.addComponent(photos);
sp.addComponent(createMainDetail());
return mw;
}
Run Code Online (Sandbox Code Playgroud)
此方法用于扩展Window的类中,因此在初始化时有: setContent(openZoomifyLayout());
你需要一个面板.您还需要确保面板的大小是固定的而不是"自然的".如果其尺寸是"自然的",则面板将被放大,直到其内容可以完全显示.面板的默认大小是自然的,这就是您没有看到任何滚动条的原因.