0

我有一个 IButton 实例,我想在单击后更改它的名称和颜色。

       button.addClickHandler(new ClickHandler() {  
            public void onClick(ClickEvent event) {  
                if(button.getTitle().equals("Enabled")) {
                    button.setTitle("Disabled");
                    button.setTitleStyle("disabledButton");
                }
                else {
                    button.setTitle("Enabled");
                    button.setTitleStyle("enabledButton");
                }                   
            }
       });

正如我们在一般 GWT 项目中所做的那样,我在默认的 .css 文件中添加了以下内容:

.enabledButton {
  color:green;
}

.disabledButton {
  color:red;
}

但是当我运行应用程序时,它既不显示红色也不显示绿色。

SmartGWT 中还有其他方法可以应用 CSS 样式吗?

4

1 回答 1

3

IButton 是一个 StatefulCanvas,这意味着它处理状态。这是通过在基本样式名称后添加后缀来完成的。例如,如果您将 titleStyle 设置为“enableButton”并将鼠标移到按钮上,它将查找 css 类:enableButtonOver。如果按钮也被聚焦,它将寻找 enableButtonFocusedOver 等(有几个后缀组合)。如果您从浏览器外部单击,则您的示例有效,因此它将失去焦点,并且只会使用 enableButton css 类。您可以通过例如 setShowFocused(false) 禁用每个状态。请参阅api

于 2012-12-14T10:10:01.307 回答