2011-07-05 14 views
1

gWtチェックボックスにclickHandlerを追加する方法です。チェックボックスをオンにすると、リストボックスが表示され、チェックボックスがオフになっているとリストボックスは消えます。GWTチェックボックスがウィジェットを非表示/表示する

以下は私がこれまで行ってきたことです。チェックボックスをオンにするとリストが表示されますが、チェックを外すとリストボックスは消えません。

VerticalPanel vPanel = new VerticalPanel(); 
ListBox list = new listBox(); 
list.setVisible(false); 
vPanel.add(list); 
..... 
..... 
checkBox.addClickHandler(new ClickHandler() 
{ 
    public void onClick(ClickEvent event) 
    { 
     boolean checked =((CheckBox) event.getSource()).isEnabled(); 
     if(checked==true) 
     { 
      list.addItem("a"); 
      list.addItem("b"); 
      list.addItem("c"); 
      list.setVisible(true); 
     } 
     else if(checked==false) 
     { 
      componentList.setVisible(false); 
     } 
    } 
}); 

ありがとうございます。

答えて

1

が有効になっています!=チェック済み! (isCheckedまたはgetValueを使用)

それ以外の場合は、Bhatのコードとアドバイスを参照してください。

2

より良い方法は、値変更ハンドラを実行することです。ユーザーはキーボードを使ってチェックボックスをチェックすることさえできます!

CheckBox c = new CheckBox(); 
c.addValueChangeHandler(new ValueChangeHandler<Boolean>() { 

    @Override 
    public void onValueChange(ValueChangeEvent<Boolean> event) { 
     componentList.setVisible(event.getValue()); 

    } 
}); 
} 

編集 -

あなたは外のリストに項目を追加する必要があります。デフォルトのチェックボックスの値(チェックされているかチェックされていないか)に応じて、開始時にコンポーネントを表示または非表示に設定します。

+0

素晴らしい提案ですが、あなたの解決策は、addValueChangeHandlerがテキストボックスに適用できないというエラーを出しました。私はAPIをチェックして、あなたのソリューションは動作するはずです... – sap

関連する問題