- 締切済み
iアプリでカーソルの位置取得
今回はじめてiアプリを作成中なのですが、panelクラスで何かのキーが押された時にどの入力項目上にカーソルがあるかを取得したいのですが、やり方がわかりません。どなたか教えて下さい。イベントがあった時にどの項目にあるかがわかるか、それともY軸の座標(項目は縦に並んでいるので)がわかればいいのですが、よろしくお願いします。 PS.出来ればCanvasではなくpanelでの方法を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
Panelでは、無理だろうと思う。高レベルAPI(Panel)の場合、まずキーのイベントがPanelに乗っ取られるため、キーの押し下げによる制御がほとんどまともに使えない。したがって、「何かのキーが押されたときに……」ということ自体がほぼできない(ソフトキーは別)。 フォーカス管理については機種依存だったと思うので、標準的な機能としてはなかったと思う。 要するに、Panelを使ったものは、「とりあえず簡単にGUIが作って使えますよ。ただしありあわせの機能だけ、それ以外は駄目」というものであり、「それ以上をお望みなら、一から全部Canvasで作れ」という形になっている、と考えたほうがいいだろう。というわけで、Canvasですべて自分で作るしかないと思う。 (ただし、最近触ってないので、新しいDoJaやStarでは機能が増えてるかも知れない。そのへんは未確認)
- pcbeginner
- ベストアンサー率46% (261/560)
iアプリは作成したことがないので、 間違ったこと言っているかもしれません。 そのイベントのクラスにイベント発生元を取得するようなメソッドがありませんか? 例えばActionEventクラスのgetSourceメソッドみたいな。 JavaDocなどを見て確認してはどうでしょうか。 また、ちょっと面倒かもしれませんが、ComponentクラスのサブクラスであればisFocusOwnerメソッドでフォーカスがあるかどうかが判定できます。