2012-12-14 108 views
0

我有一個IButton實例,我想在點擊後更改其名稱和顏色。SmartGWT:從CSS應用樣式

 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樣式嗎?

回答

3

IButton是一個StatefulCanvas,意思是它處理狀態。這是通過在基礎樣式名稱之後添加後綴來完成的。例如,如果將titleStyle設置爲「enableButton」,並將鼠標移動到按鈕上,它將查找css類:enableButtonOver。如果該按鈕也被關注,它會查找enableButtonFocusedOver等(有幾個後綴組合)。如果你從瀏覽器中單擊外部,你的例子就可以工作,所以它將失去焦點,並且只會使用enableButton css類。您可以通過例如setShowFocused(false)禁用每個狀態。請參閱api