2012-03-26 8 views
0

こんにちは、私はGWTを使用して、私は次のようなeventHandlerありcom.smartgwt.client.widgets.Buttonがあります。変更ボタンタイトルの問題

 Button viewCommentsButton = new Button("View "); 
     viewCommentsButton.addClickHandler(new ClickHandler() { 

      @Override 
      public void onClick(ClickEvent event) { 
       if (!childrenVisible) { 
        addChildren(); 
        getParent().setTitle("Close"); 
       } else { 
        removeChildren(); 
        getParent().setTitle("View"); 
       } 
      } 

     }); 

あなたは、私が試したのgetParentを見ることができるように()のsetTitle()メソッドには影響はありません。私のボタンオブジェクトへの参照を取得することはできませんが、コードがコンパイルされ、getParentがウィジェットを返す可能性が高いので、ifはうまく動作します。

しかし、addChildrenメソッドとremoveChildrenメソッドは正常に動作していますが、私のボタンは常に最初のタイトルを持っています。なぜどんなアイデア?これが理にかなってほしい。

どのような提案も歓迎されます。ありがとう。

答えて

2

あるのsetText

を使用する必要があります。

ボタンにテキストを設定する場合は、viewCommentsButton.setText()に電話してください。

あなたが最終とボタンをマークする必要がありますこれらのいずれかのために

からgetParent()のコンテキストが混乱してfinal Button viewCommentsButton = ...

でそれを宣言する。 getParent()、これを使用している方法では、このすべてを定義しているウィジェットの親を返します。viewCommentsButtonの親ではなく、確かにviewCommentsButtonではありません。

+0

私はこれを7分で受け付けます。私はこのオプションを持っていましたが、変数globalyまたはfinalを宣言しなければなりませんでした。 +1 – Fofole

1

あなたはviewCommentsButton.setTitle()を呼び出し、viewCommentsButtonにタイトルを設定しようとしている場合のsetTitleは、 "ツールチップ"

+0

私は私のボタンojectのためのsetTextメソッドを持っていません。 – Fofole

+0

奇妙なhttp://google-web-toolkit.googlecode.com/svn/javadoc/2.3/com/google/gwt/user/client/ui/Button.htmlそれを文書化 –

+0

あなたは正しいです。しかし、私はcom.smartgwt.client.widgets.Buttonを使用しました。com.google.gwt.user.client.ui.Buttonではなく、少し異なります。それにもかかわらず助けようとするための+1。 – Fofole

1

ボタンをメソッド変数ではなくクラス変数にし、クリックハンドラ内でボタンを使用(参照)するよりも、例えば

viewCommentsButton = new Button("View "); //viewCommentButton is the private member. 
    viewCommentsButton.addClickHandler(new ClickHandler() { 

     @Override 
     public void onClick(ClickEvent event) { 
      if (!childrenVisible) { 
       addChildren(); 
       viewCommentButton.setTitle("Close"); 
       viewCommentButton.setText("Close"); 
      } else { 
       removeChildren(); 
       viewCommentButton.setTitle("View"); 
       viewCommentButton.setText("View"); 
      } 
     } 

    }); 
+0

+1私の主な関心事はgetParent()が私のボタンへの参照を取得するかどうかだったが、正しい。 – Fofole

+0

私はいくつか言及したように、親ウィジェットを指しています。親ウィジェットは、通常、ボタンではなくペインまたはレイアウトです。 – biplav

関連する問題