我是论坛和编程的新手,所以希望我能为您提供足够的细节和精确的信息来理解我的问题。
我正在使用java EE web应用程序中的vaadin 7,我有一个布局问题/ phanomena,我无法解释,我无法在网上找到解决方案。基本上,当我启动服务器并在localhost上测试我的应用程序时,一切看起来都是正确的。当我打开一个对话窗口并再次关闭它时,该网站的布局看起来有些变化。我找不到关于哪个点击导致此效果的模式。有时它也会在我只更改视图时发生。这是how it should look like,在应用程序中工作后为how it does look like。
我查看了浏览器中的devloper工具,注意到在工作html中,属性" top"和"左"为gridlayout-slot设置。在移位布局中,未设置这些属性。此外,似乎问题更常发生在chrome中。它也会在Firefox中发生但不常发生。
我使用VerticalLayout,GridLayout和FormLayout。
你有类似的经历吗?我想知道如何以及何时从vaadin代码生成html文件,以找出它们为什么会发生变化以及如何解决它。
我不确定究竟是哪个代码导致了问题,所以我不确定要发布什么。如果你知道在哪里看,我可以添加更多代码。以下是对话框的设置方法:
public class Dialog extends Window implements ClickListener
public Dialog(CustomController controller, String title)
{
super(title);
setModal(true);
setStyleName("dialogWindow");
this.controller = controller;
setWidth("65.0%");
setHeight("90.0%");
// top level component properties
panLayout = new GridLayout();
panLayout.setWidth("100%");
panLayout.setHeight("100%");
buildPanToolbar();
panLayout.addComponent(panToolbar);
buildPanTop();
panLayout.addComponent(panTop);
buildPanTabs();
panLayout.addComponent(tabsheet);
panLayout.setComponentAlignment(tabsheet, Alignment.MIDDLE_CENTER);
panLayout.setRowExpandRatio(2, 1.0f);
tfThema.focus();
setContent(panLayout);
}
buildSomething()
函数都是GridLayout,FormLayout,HorizontalLayout和VerticalLayout的组合。以下是buildPanToolbar()
函数作为示例
private void buildPanToolbar()
{
panToolbar = new HorizontalLayout();
panToolbar.setImmediate(false);
panToolbar.setWidth("100%");
panToolbar.setHeight("25px");
panToolbar.setMargin(false);
panToolbar.setSpacing(true);
panToolbar.setStyleName("toolbar");
HorizontalLayout panHelpToolbar = new HorizontalLayout();
panHelpToolbar.setImmediate(false);
panHelpToolbar.setWidth("-1px");
panHelpToolbar.setHeight("25px");
panHelpToolbar.setMargin(false);
panHelpToolbar.setSpacing(true);
panHelpToolbar.setStyleName("toolbarButtons");
panToolbar.addComponent(panHelpToolbar);
pbButton1 = new Button();
pbButton1.setCaption("Button1Text");
pbButton1.setStyleName(BaseTheme.BUTTON_LINK);
pbButton1.setImmediate(true);
pbButton1.setWidth("100px");
pbButton1.setHeight("-1px");
pbButton1.setIcon(new ThemeResource("../images/pic1.gif"));
pbButton1.addClickListener(controller);
panHelpToolbar.addComponent(pbButton1);
panHelpToolbar.setComponentAlignment(pbButton1, Alignment.MIDDLE_LEFT);
pbButton2= new Button();
pbButton2.setCaption("Button2 Text");
pbButton2.setImmediate(true);
pbButton2.setWidth("100%");
pbButton2.setHeight("-1px");
pbButton2.setStyleName(BaseTheme.BUTTON_LINK);
pbButton2.setIcon(new ThemeResource("../images/pic.gif"));
pbButton2.addClickListener(this);
panHelpToolbar.addComponent(pbButton2);
panHelpToolbar.setComponentAlignment(pbButton2, Alignment.MIDDLE_LEFT);
}