TitleAreaDialog
のクラスのタブ順からmessageLabel
(画像の赤い矢印で強調表示)を削除する方法をお探しです。この問題を回避するには、現在、次のようになります。JFaceのTitleAreaDialogでタブ順からメッセージラベルを削除するには
getButton(IDialogConstants.CANCEL_ID).addTraverseListener(new TraverseListener() {
@Override
public void keyTraversed(TraverseEvent e) {
if (e.detail == SWT.TRAVERSE_TAB_NEXT) {
e.doit = false;
textUsername.forceFocus();
}
}
});
私の現在の回避策は、大文字と最下位の複合材料でTraverseEvent
をリッスンし、手動で正しい複合にフォーカスを強制することです。
しかし私は、製品のすべてのインスタンスについて、CommonTitleAreaDialog
クラスで実装できるより一般的なソリューションを探しています。
一般的な解決策では、トラバーサルリスナーの回避策を使用することはできますか? –
@RüdigerHerrmann 'messageLabel'を囲むコンポジットにリスナーを置く必要があります(コードサンプルの編集を参照)。トラバースリスナーを使うときに何が考えられましたか(具体的には)? –