- PR -

SWT の カスタムウィジットにフォーカスを与えたい

1
投稿者投稿内容
にく
会議室デビュー日: 2005/09/07
投稿数: 1
投稿日時: 2005-09-07 11:31
お世話になります。

SWT で、Composite を継承して描画全自作のカスタムコントロールを作成しているのですが、Canvasしか使ってないのでフォーカスがもてません。

現在は、幅1高さ1のボタンを貼り付けて、それらしく動かし
KeyListenerもこのボタンにつけてイベントを取得しています。。。
CompositeあるいはCanvas単体で、Tabキーによるフォーカス移動に含まれるようにしたいのですが、スマートな方法はないでしょうか?

以上、よろしくお願いします。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2005-09-07 15:08
スマートな方法は存じませんが、
Control自体がFocusEventを得るようにすると、フォーカスを得ることができます。
SWT 3.0.2で以前試したことがあります。
SWT: The Standard Widget Toolkit Volume 1に載っていたはず。

TABなどでのフォーカスの移動に対応するには、TraverseEventを得るようです。
(こちらは試したことがないです)
もしかすると、Control#traverse()でSWT.TRAVERSE_XXXXを自前で発行する必要があるかも
しれません。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2005-09-14 10:46
SWT SnippetsのCanvasのimplement tab traversal (behave like a tab group) ってのを見つけました。
参考になるかも。
1

スキルアップ/キャリアアップ(JOB@IT)