- PR -

Glass pane上にペイントしたダイアログのボタンの位置の取得方法

投稿者投稿内容
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-03-01 18:54
引用:

未記入さんの書き込み (2007-03-01 17:31) より:
フォーカスをJDialogに移したくないからです。奇怪ですが、描画だけで擬似的にダイアログをGlass Pane上に実現できるか知りたかったのですが、少し難しそうですね。



分かった上で敢えてやりたいというなら付き合いますよ。

本来のJDialogを描画していないので、通常のイベントが発生しません。
そこで、GlassPaneにMouseListenerを設定し、JDialogの描画矩形内部で
各種イベントが発生した場合に、JDialogのMouseLisnerをコールしてやるように
自力でバイパスしてやります。

この方法論である程度やれるのではないかと思います。
GlassPaneに設定するMouseListenerとJDialogに設定するMouseListenerを
連動させる必要がありますが、うまくクラスを作ればわりと汎用的に扱えるかも。

# とここまで書いて、それでもフォーカスは移るんじゃないかと思った。まぁいいや。
# フォーカスを移したくないとは具体的にフォーカスが移った場合の何が嫌なんだろう?
未記入
会議室デビュー日: 2007/01/26
投稿数: 18
投稿日時: 2007-03-23 02:49
すみません、返信が遅れました。(気づいていませんでした。。。)

ヒントをいただきありがとうございました。
偶然、Swing Hacksの書籍でシートダイアログというのを見つけ、
なんとなくやりたいことに近かったので自己解決しました。

ありがとうございました。

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