2013-03-07 54 views
4

我猜應用程序類已從Vaadin中刪除7,而setMainWindow()不再有效。Vaadin 7中的應用程序類的替換

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.工作有誰知道如何解決這一問題?什麼類可以用來代替應用程序?請幫助

回答

8

UI

你應該Vaadin 7擴展com.vaadin.ui.UI。此類表示顯示Vaadin應用程序的Web瀏覽器窗口/選項卡(或portal viewport)的整個內容區域。每個Vaadin應用程序都有一個UI實例;另外打開的每個窗口都有一個UI實例。

欲瞭解更多信息,請參閱wiki頁面,Migrating from Vaadin 6 to Vaadin 7

該指南的第一個示例顯示了Vaadin 6和7中的一個最小應用程序,如下所示。

Vaadin 7

版7個應用延伸類。

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」); 
    } 

} 
+0

是的,找到它了。非常感謝:) – MEOW 2013-03-07 17:52:14

+2

@MEOW這是你的問題的正確答案,所以你應該接受它。 – 2013-03-07 19:58:27

+0

提示:爲您的Eclipse或NetBeans使用Vaadin插件將爲您創建一個新的Vaadin項目。 IntelliJ也可能支持Vaadin(我不知道細節)。 – 2014-09-22 21:22:09