[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01297] Re: JPopupMenu の heavyweight化
┏━◇新しい事始めたくなる2000年【みんなが使えるメーリングリスト】◇━┓
◆ 世界で一番簡単なメーリングリスト目指して http://mx7.dns-ml.co.jp/
◇ お陰様でベータテスト参加者が1万名を突破しました! m(..)m
◆ 安定性も既に証明済。新しく作るなら新システムで開設して下さい!
┗━◇━ DNSホームページはこちら → http://mx7.dns-ml.co.jp/ ━◇━┛
小池です。
私もJFrameにCanvas3Dを張りつけてみたことがあります。
(そのときはSwingによるGUIの反応の低下が嫌で、結局は
やめてしまいましたが)。
At 21:44 00/01/26 +0900, Itoh Miho wrote:
> 伊藤です。
> こんにちは。
>
> Canvas3DをSwingで使用したいので [Java3Djp:00653] Re: Swing
> を参考にメニューをheavyweight化してみようとしたのですがうまく
> 行きません。
> フレームを作成した後に
>
> JPopupMenu.setDefaultLightWeightPopupEnabled(false);
>
> とやっているのですが すぐにtrueになってしまいます。
> タイミングが悪いのでしょうか?
そうだと思います。
setDefaultLightWeightPopupEnabled()は単純に、JPopupMenuに
staticに保持されているデフォルト設定を変更するものでしょう。
(未確認の想像です。)
したがって、インスタンスを作成する前に呼ぶべきだと思います。
> public class PopupTest{
>
> //アプリケーションの構築
> public PopupTest() {
> //JFrame作成
> JFrame frame = new JFrame();
>
> //メニュー作成
> JMenuBar menuBar = new JMenuBar();
> JMenu menu = new JMenu();
> JMenuItem menuItem = new JMenuItem();
(省略)
> //heavyweight に設定:1
> menu.getPopupMenu().setDefaultLightWeightPopupEnabled(false);
> System.out.println("lightweight? 1: "
> +menu.getPopupMenu().isLightWeightPopupEnabled());
>
> //heavyweight に設定:2
> JPopupMenu.setDefaultLightWeightPopupEnabled(false);
> System.out.println("lightweight? 2: "
> +menu.getPopupMenu().isLightWeightPopupEnabled());
>
> frame.setVisible(true);
> }
>
>
> //Main メソッド
> public static void main(String[] args) {
> new PopupTest();
> }
> }
setDefaultLightWeightPopupEnabled()は、遅くともメニューを
作る前に行うべきでしょう。私個人の好みで言えば、後から
変更する必要の無い(かつされるべきで無い)staticな属性の
設定は、mainの先頭あたりがいいと思いますが。
ちなみに、isLightWeightPopupEnabled()はstaticメソッドでは
ありません。つまり、これはそのインスタンスについてだけ
light weightかどうかを調べるメソッドです。
デフォルト値がどう設定されているかは、staticメソッドの
setDefaultLightWeightPopupEnabled()で調べられます。
以下、ちょっと話がずれるのですが・・。
冒頭に書いたように、私はパフォーマンスの点から結局
Canvas3DをJFrameに張るのはやめています。しかし、より
使いやすいインターフェースを作ろうと思うと、やはり
Swingにはおおいに未練があります。
JDK1.3では、クライアント用HotSpotのためもあって、Swingの
性能が大幅に良くなっていると聞きます(ObjectDesign社の人の
コメントとして、「ついにネイティブコードのGUIと遜色無く
動くようになった」というような文を読みました)が、
Java3Dとの相性はどうなのでしょうか。
以前に、えんどうさんがテクスチャーか何かで問題が出たと
おっしゃっていたようですが・・。
/* written by Koike,T. */