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 に答える