[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01302] Re: JPopupMenu の heavyweight化
-------------------------------------------------------------------
■ Vmailのご案内
Vmailは2000年1月20日にスタートしたメールサービスです。
あなたの興味にあわせて、企業からの情報をお届けします。
http://www.vmail.ne.jp/link.cgi?via=JiJkM
-------------------------------------------------------------------
伊藤です。
回答ありがとうございます。
Tomohiro Koike wrote:
> At 21:44 00/01/26 +0900, Itoh Miho wrote:
>
> > Canvas3DをSwingで使用したいので [Java3Djp:00653] Re: Swing
> > を参考にメニューをheavyweight化してみようとしたのですがうまく
> > 行きません。
> > フレームを作成した後に
> >
> > JPopupMenu.setDefaultLightWeightPopupEnabled(false);
> >
> > とやっているのですが すぐにtrueになってしまいます。
> > タイミングが悪いのでしょうか?
>
> そうだと思います。
>
> setDefaultLightWeightPopupEnabled()は単純に、JPopupMenuに
> staticに保持されているデフォルト設定を変更するものでしょう。
> (未確認の想像です。)
>
> したがって、インスタンスを作成する前に呼ぶべきだと思います。
確かにメニューをnewする前に
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
としてうまく行きました(^^)
ありがとうございました。
> ちなみに、isLightWeightPopupEnabled()はstaticメソッドでは
> ありません。つまり、これはそのインスタンスについてだけ
> light weightかどうかを調べるメソッドです。
改めてまじめに JPopupMenu のソースを読んだところ
コンストラクタの中で static な Default 設定の値を
private変数にコピーしていました。
だから、コンストラクト後に Default 設定を変更しても
インスタンスの設定は true のままだったんですね。
よく分かりました。
> 以下、ちょっと話がずれるのですが・・。
>
> 冒頭に書いたように、私はパフォーマンスの点から結局
> Canvas3DをJFrameに張るのはやめています。しかし、より
> 使いやすいインターフェースを作ろうと思うと、やはり
> Swingにはおおいに未練があります。
>
> JDK1.3では、クライアント用HotSpotのためもあって、Swingの
> 性能が大幅に良くなっていると聞きます(ObjectDesign社の人の
> コメントとして、「ついにネイティブコードのGUIと遜色無く
> 動くようになった」というような文を読みました)が、
> Java3Dとの相性はどうなのでしょうか。
そうなのですか。楽しみですね。
> 以前に、えんどうさんがテクスチャーか何かで問題が出たと
> おっしゃっていたようですが・・。
今回、あまり複雑なGUIを作る訳ではないので Swing採用
に踏み切りました。今のところテクスチャーも使わないです。
私も無難にAWTで作りたい気持ちもあるのですが、
Swingの格好よさは捨て難いものがあります。
---------------------
伊藤美穂
(株)数理システム
itoh@xxxxxxxxxx