2 つのウィンドウに 2 つのボタンがあります。ボタンは、それぞれのウィンドウごとにコンテンツを表示する必要があります。ボタンにボタン 1 のコンテンツを表示し、2 番目のボタンにボタン 1 のコンテンツを表示したいと思います。ボタンクリックメソッドをクリックリスナーに結び付けるにはどうすればよいですか?
- - - - - - - - - - - - - - 編集 - - - - - - - -
提案された編集の後、ボタン 2 には「これはボタン 2 です」と表示されますが、ボタン 1 にはウィンドウが表示され、「これはボタン 1 ではありません」と表示されます。
@Theme("mytheme")
public class MyUI extends UI implements Button.ClickListener {
final Button button = new Button("Click Me");
final Button button2 = new Button("Click Me");
final FormLayout content = new FormLayout();
final VerticalLayout layout = new VerticalLayout();
@Override
protected void init(VaadinRequest vaadinRequest) {
final Window window = new Window("Window");
final Window window2 = new Window("Window");
window.setContent(content);
window2.setContent(content);
button.addClickListener( e -> {
content.addComponent(new Label("This is Button 1"));
UI.getCurrent().addWindow(window);
});
button2.addClickListener( f -> {
content.addComponent(new Label("This is Button 2"));
UI.getCurrent().addWindow(window2);
});
layout.addComponents(button, button2);
layout.setMargin(true);
layout.setSpacing(true);
setContent(layout);
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
}