2

LabelSWT にコントロールがあり、入力フィールドをTextアクティブにするラベルにニーモニックを定義するにはどうすればよいですか? にニーモニックを設定する方法の例をいくつか見つけましたが、 にButtonニーモニックを定義Labelして別の入力コントロールを指すようにするにはどうすればよいですか?

4

1 に答える 1

3

最も単純なケースでは、ボタンと同じようにニーモニックを定義できます。

Label label = new Label( parent, SWT.NONE );
label.setText( "&Name" );
Text text = new Text( parent, SWT.BORDER );

を押すAlt+Nと、ラベルのタブ オーダーの次のコントロール (この場合はテキスト入力フィールド) がフォーカスされます。

別のコントロールがフォーカスを取得する必要がある場合は、トラバース リスナーをラベルに追加し、目的のコントロールに手動でフォーカスを与える必要があります。例えば

Label label = new Label( parent, SWT.NONE );
label.setText( "&Name" );
label.addListener( SWT.Traverse, new Listener() {
  @Override
  public void handleEvent( Event event ) {
    if( event.detail == SWT.TRAVERSE_MNEMONIC ) {
      event.doit = false;
      otherControl.setFocus();
    }
  }
} );
于 2016-05-11T15:51:13.313 に答える