Vaadin 7中Application类的替换

MEO*_*EOW 4 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Hen*_*ola 8

UI课程

你应该延伸com.vaadin.ui.UIVaadin 7.此类表示显示Vaadin应用程序的Web浏览器窗口/选项卡(或门户视口)的整个内容区域.每个Vaadin应用程序都有一个UI实例; 打开的其他窗口每个都有一个UI实例.

有关更多信息,请查看Wiki页面,从Vaadin 6迁移到Vaadin 7.

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

瓦丁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);
    }
}
Run Code Online (Sandbox Code Playgroud)

瓦丁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”);
    }

}
Run Code Online (Sandbox Code Playgroud)

  • @MEOW这是你问题的正确答案,所以你应该接受它. (2认同)