【发布时间】:2015-04-13 11:31:54
【问题描述】:
我正在使用 Vaadin 7.3.10。
我在面板中添加了一个布局组件,以便 如果需要,布局应滚动。
但是,当我尝试替换布局组件时,新的 组件添加到(如下所示)而不是替换 现有组件 - 请参阅下面的代码示例。
如何/可以做到这一点?
n.b.如果布局不包含在面板内,则 更换正确发生。 另外,我不需要为此使用导航器。
谢谢, 史蒂夫...
import com.vaadin.ui.Button;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Button.ClickEvent;
public class NewComponent extends VerticalLayout {
private VerticalLayout mainLayout = new VerticalLayout();
private Panel panel = new Panel();
public NewComponent() {
mainLayout.addComponent(new Label("Main"));
mainLayout.setSizeFull();
addComponent(mainLayout);
panel.setWidth("1000px");
panel.setHeight("500px");
panel.setContent(mainLayout);
Button button = new Button("Click Me");
button.addClickListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
replaceComponent(mainLayout, new Label("what's wrong?"));
}
});
mainLayout.addComponent(button);
addComponent(panel);
}
}
public class TestUI extends UI {
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = TestUI.class)
public static class Servlet extends VaadinServlet {
}
@Override
protected void init(VaadinRequest request) {
setContent(new NewComponent());
}
【问题讨论】: