Css Vaadin MenuItem.setStyleName赢得';行不通

Css Vaadin MenuItem.setStyleName赢得';行不通,css,vaadin,vaadin7,Css,Vaadin,Vaadin7,在vaadin中选择此项目后,我尝试更改项目的颜色。但当我单击某个项目时,未选择任何菜单项 MenuBar.MenuItem previous = null; void createMenuBar(){ menuBar = new MenuBar(); menuBar.addItem("First Item", menuItem -> { if (previous != null) p

在vaadin中选择此项目后,我尝试更改项目的颜色。但当我单击某个项目时,未选择任何菜单项

   MenuBar.MenuItem previous = null;

    void createMenuBar(){

        menuBar = new MenuBar();
        menuBar.addItem("First Item", menuItem -> {
            if (previous != null)
                previous.setStyleName(null);
                menuItem.setStyleName("selected");
                previous = menuItem;
                someActions();
        });
        menuBar.addItem("Second Item", menuItem -> {
            // same action 
    });
这里是我style.css的一部分

.v-menubar-user-menu .v-menubar-menuitem-selected {
    color: #e2f6e7;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
}

.v-menubar-user-menu .v-menubar-menuitem-selected:hover {
    color: #e2f6e7;
}
编辑

我假设菜单项是一个组件,但事实并非如此

试试这个:

MenuBar menuBar = new MenuBar();

menuBar.addItem("test",item -> {
    for(MenuBar.MenuItem m : menuBar.getItems())
        m.setStyleName("");
    item.setStyleName("selected");
});
或者,您可以在css中使用原生vaadin样式名称:

v-menubar-menuitem-selected 

menuBar没有儿童成员。我只能得到一个菜单项列表,我假设菜单项是某个组件,但事实并非如此。更改了答案当您检查用“选定”样式设置的菜单项的样式时,它是否存在?也许你的CSS没有选择正确的东西。