通过uiBinder - GWT从Panel更改MenuBar样式

时间:2014-07-03 13:47:14

标签: java css gwt web

我有这样的uiBinder设置:

<ui:style field="localStyle">
    .action {
        background-color: #529412;
        height: 28px;
        width: 100%;
    }

    .action > table {
        height: 100%;
        width: 100%;
    }

    .action a {
        font-size: 14px;
        color: white;
        text-decoration: none;
    }
</ui:style>
    <g:FlowPanel>
        <g:SimplePanel ui:field='action' styleName='{localStyle.action}'>
            <g:HorizontalPanel>
                <g:Cell verticalAlignment="MIDDLE" horizontalAlignment="LEFT">
                    <g:SimplePanel ui:field='navigations' styleName='{localStyle.navigations}'></g:SimplePanel>
                </g:Cell>
                <g:Cell verticalAlignment="MIDDLE" horizontalAlignment="RIGHT">
                    <g:SimplePanel ui:field='actions' styleName='{localStyle.actions}'></g:SimplePanel>
                </g:Cell>
            </g:HorizontalPanel>
        </g:SimplePanel>
        <g:SimplePanel ui:field='content'>

        </g:SimplePanel>
    </g:FlowPanel>

但是我在那个uifield中设置了一个MenuBar:通过代码执行的操作:

   private MenuBar createMenuBar(){
        MenuBar menuButton = new MenuBar();
        MenuBar mb = new MenuBar(true);


        mb.addItem(getAboutMenuItem());
        mb.addItem(getLogoutMenuItem());

        return menuButton;
    }

当我想设置MenuBar的颜色时,我会怎么做...我试过了

.actions MenuBar {
background-color: #eee;
}

但它不喜欢那样。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您无法通过CSS中的类名访问GWT小部件。

您必须在Ui:Binder css中创建一个类名称,如

.menuBar {/* STYLE */}

然后按照官方文档中的说明将样式注入Java类: http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html#Programmatic_access

然后您可以访问Java类中的样式并执行

mb.addStyleName(css.menuBar);