SWTおよびAWT用にJavaでオンスクリーンキーボードを実装しています。重要なことの1つは、選択したテキストフィールドが表示され、画面キーボードの後ろにない位置にキーボードを移動することです。
AWTの場合、iは現在選択されているコンポーネントの位置を次のように検出できます。
Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
if (owner == null) {
return;
}
Point ownerLocation = owner.getLocationOnScreen();
Dimension ownerSize = owner.getSize();
SWTに同じロジックを実装するにはどうすればよいですか?SWTイベントキューにfocuslistenerを追加して、現在選択されているウィジェットを取得します。しかし、私が電話するとき
Point location = new Point(mTextWidget.getLocation().x, mTextWidget.getLocation().y);
Dimension dimension = new Dimension(mTextWidget.getSize().x, mTextWidget.getSize().y);
親コンポジットに相対的な位置を取得します。
画面全体に関連する特別なウィジェットの場所を取得するにはどうすればよいですか?