- PR -

JComboBox の GlassPane 上でのレンダリング

投稿者投稿内容
大ベテラン
会議室デビュー日: 2006/06/28
投稿数: 116
投稿日時: 2007-12-16 13:30
引用:

わたなべさんの書き込み (2007-12-16 02:27) より:
> 暁さん
想定外の使い方ですから仕様漏れではないでしょう。
今回はリンク先にある効果を使いたく、GlassPane上で描画するという前提なので、
LayeredPaneに書けばOKというのは解決策ではないのです。
http://www.curious-creature.org/2007/08/01/blurred-background-for-dialogs-extreme-gui-makeover-2007/


確かに。
仕様漏れではないですね
仕様策定もれというべきなのでしょうか。
リンク先は参照させていただいたのですが、glass paneのように動作するという風には書いてありますが、
GlassPane上に書くという記述は無かったので、仕様にも無い動作をさせるべきではないとの考えから代案を書き込みました。

技術的な点は無しで考えて、リンク先のサンプルの動作は
「詳細ボタン押下でメインフレーム操作不可、詳細ポップアップ画面表示」
ですよね。
そして詳細ポップアップは操作可能であると。
これ以外にも実現させたいことがありますか?
無いようでしたらJLayeredPaneで実現できるように思います。

ただ、試してみたのですが参照先のようにメニューも覆うとなると後付けのコードでは難しそうですね。
私が先に示したコードではコンテンツ区画をLayeredPaneとしていますが、メニューもLayeredPaneの座標下に持ってゆくためには
あらかじめJFrame#setLayeredPaneでLayeredPaneを設定し、そのFRAME_CONTENT_LAYERにメニューを追加するコーディングが必要になりました。
私であれば、通常このような変更を考慮して作成してないからメインのフレームに手を入れることになるかな。
どのくらい影響があるのか……変更量が計りにくい。

仕様として考慮されていないバグに当たる度に苦しんでソースを追いまわした者からすると
ルールに沿った使い方をしたいところですが、時間が無いということであれば仕方が無いのかとも思います。
またrancoさんの発言にありますが、わたなべさんが最初に示されていたように、重量コンポーネントでの描画が
機能の後付けとしては、私にも一番まっとうだと思えます。

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