私はサブウィンドウを使用しようとしていますが、入れようとしているコンポーネントが "mainwindow"に表示されるか、java.lang.UnsupportedOperationExceptionが表示されます。私は両方の場合をお見せします。私はいくつかの実際のコンポーネントではなく、ラベルとボタンを配置する必要があるときに、サブウィンドウにHorizontalLayoutを配置したいと思います。Vaadin:Sub window
public class SubWindow extends CustomComponent {
Window mainWindow; // Reference to main window
Window myWindow; // The window to be opened
public SubWindow(Window main) {
mainWindow = main;
createWindow();
}
public void createWindow() {
myWindow = new Window("My Dialog");
HorizontalLayout layout = new HorizontalLayout();
// Add the window inside the main window.
mainWindow.addWindow(myWindow);
layout.addComponent(new Label("A label"));
layout.addComponent(new Button("Ok"));
// The composition root MUST be set
setCompositionRoot(layout);
myWindow.addComponent(layout);
}
}
私はこれを実行すると
window = new Window("Title");
setMainWindow(window);
window.addComponent(new SubWindow(window));
は私が得る使用して新しいサブウインドウを開く
SEVERE:ターミナルエラー:
com.vaadin.event.ListenerMethod $ MethodException
原因:java.lang.UnsupportedOperationException at c om.vaadin.event.ListenerMethod.receiveEvent com.vaadin.event.EventRouter.fireEventで(ListenerMethod.java:510) (EventRouter.java:164)
...によって引き起こさ
:javaの。 com.vaadin.ui.AbstractComponentContainer.addComponentでcom.vaadin.ui.CustomComponent.removeComponent(CustomComponent.java:248) でlang.UnsupportedOperationException (AbstractComponentContainer.java:207)
...
一方、私がsetCompとsetCompの間で切り替えるとositionRoot(レイアウト)とmyWindow.addComponent(レイアウト)を使用すると、ラベルとボタンは、新しく作成されたサブウィンドウの代わりにメインウィンドウで終了します。
私には何が欠けていますか?
応答のためにありがとう、今は魅力のように動作します。同じ種類の問題を抱えている人には、[Sub windows](http://vaadin.com/tutorial/-chapter/skeleton.subwindows.html)に関する良いチュートリアルがあります。 –