Loading [MathJax]/extensions/tex2jax.js

2014-12-26

GWTにてFlexTableに配置されたボタンのクリックを特定する ~IDの設定と取得~

下記の図のように、FlexTableにボタンを配置して、押されたボタンの位置(行)を特定することを考えます。

その方法は下記のようになります。
  • getElement().setIdを利用して各ボタンにidを割り振る(id=行とする)
  • クリックイベントにてevent.getSource()を呼び出し、クリックされたボタンを取り出す
  • そのボタンのidを調べる
以上の方法により、下記のような動作をします。

(一番上のボタンをクリックした場合。)


(上から3番目のボタンをクリックした場合)


コードは下記のようになります。

//ボタンにIDをつけておく
testButton.getElement().setId(String.valueOf(itemNum));
testButton.addClickHandler(clickHdl);
//FlexTableに貼り付け
rvTable.setWidget(itemNum, 2, testButton);
//ボタンがクリックされた時の処理
ClickHandler clickHdl= new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
Button btn= (Button)(event.getSource());
//この場合、クリックされたボタンの行に対応する
Window.alert(btn.getElement().getId());
}
};


0 件のコメント:

コメントを投稿