Java 如何在选择更改时更新vaadin选项卡中的内容?

Java 如何在选择更改时更新vaadin选项卡中的内容?,java,vaadin,vaadin4spring,vaadin-navigator,Java,Vaadin,Vaadin4spring,Vaadin Navigator,我有一个Vaadin选项卡菜单,每个选项卡当然包含不同的内容。现在,如果内容是具有动态生成内容的自己的类,那么如果选择了选项卡,如何强制更新内容 我的内容类实现了视图,因此它是一个enter(viewchangevent事件),如果我使用导航器更改视图,通常会触发该事件。 但是,如果我使用一个选项卡来更改内容,则不会触发viewchangevent。 如何触发选项卡特定视图内容的enter()方法 @VaadinComponent @UIScope public class MyView ext

我有一个Vaadin选项卡菜单,每个选项卡当然包含不同的内容。现在,如果内容是具有动态生成内容的自己的类,那么如果选择了选项卡,如何强制更新内容

我的内容类
实现了视图
,因此它是一个
enter(viewchangevent事件)
,如果我使用
导航器
更改视图,通常会触发该事件。 但是,如果我使用一个选项卡来更改内容,则不会触发
viewchangevent
。 如何触发选项卡特定视图内容的
enter()
方法

@VaadinComponent
@UIScope
public class MyView extends CssLayout implements View {
    private Label label;

    public MyView() {
        label = new Label("empty");
    }

    @Override
    public void enter(ViewChangeEvent event) {
        label.setValue("entered");
    }
}

@VaadinComponent
@UIScope
public class MyMenu extends CssLayout {
    private TabSheet tabs;

    public MyMenu() {   
        tabs = new TabSheet();
        addComponent(tabs);     
    }

    @Autowired
    private MyView myview;

    @PostConstruct
    public void init() {
        tabs.addComponent(myview);
        //some more tabs
    }
}

您可以像这样使用
快捷方式侦听器

component.addShortcutListener(new ShortcutListener("caption", KeyCode.ENTER, null) {

    private static final long serialVersionUID = 1L;

    @Override
    public void handleAction(Object sender, Object target) {
        label.setValue("entered");
    }
});

为什么不使用TabSheet.SelectedTabChangeEvent和listener?医生。