Vaadin 7中Application类的替换

时间:2013-03-07 16:43:47

标签: java vaadin vaadin7

我想应用程序类已从Vaadin 7中删除,setMainWindow()不再有效。

public class MyApplication extends Application {   //ERROR coz there's no Application class
    public void init() {
        Window mainWindow = new Window("My Application");
        setMainWindow(mainWindow);          //Error setMainWindow not defined
        mainWindow.getContent().setSizeFull();

        MyComposite myComposite = new MyComposite();
        mainWindow.addComponent(myComposite);
    }
}

虽然以上代码适用于Vaadin 6,但它在Vaadin 7中不起作用。有谁知道如何解决这个问题?使用什么类而不是应用程序?请帮忙

1 个答案:

答案 0 :(得分:8)

UI班级

您应该在com.vaadin.ui.UI中展开Vaadin 7。此类表示显示Vaadin应用程序的Web浏览器窗口/选项卡(或portal viewport)的整个内容区域。每个Vaadin应用程序都有一个UI实例;打开的其他窗口也都有一个UI实例。

有关更多信息,请查看Wiki页面Migrating from Vaadin 6 to Vaadin 7

该指南中的第一个示例显示了Vaadin 6和7中的最小应用程序,如下所示。

Vaadin 7

版本7应用扩展UI类。

import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.*;

@Theme("mytheme")
public class MyApplicationUI extends UI {

    @Override
    protected void init(VaadinRequest request) {
        VerticalLayout view = new VerticalLayout();
        view.addComponent(new Label("Hello Vaadin!"));
        setContent(view);
    }
}

Vaadin 6

第6版应用扩展Application类。

import com.vaadin.Application;
import com.vaadin.ui.*;

public class V6tm1Application extends Application {
    @Override
    public void init() {
        Window mainWindow = new Window("V6tm1 Application");
        Label label = new Label("Hello Vaadin!");
        mainWindow.addComponent(label);
        setMainWindow(mainWindow);
        setTheme(“mytheme”);
    }

}