[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00893] Re: [Q]java3DとCanvas



■□■□■  国際電話、国内長距離電話を超・安くかけよう! ■□■□■

┏━━━━━━━━━━━━━┓ 日本国内ならどこまでかけても ┏━━━┓
┃遠距離恋愛しているあなたへ┃ 1分間17円ぽっきりだよ!  ┃NTTの ┃
┃単身赴任で寂しいあなたにも┃ 1時間しゃべってもたった千円 ┃約半額┃
┗━━━━━━━━━━━━━┛                ┗━━━┛
 ★ 国際電話にかけても超・安い。 日本→米国:1分間21円だよ!★
■□■□ 安い電話ドット・コム  http://www.yasuidenwa.com/    □■□■

こんにちは,岸田です.

Ikuhisa Masui wrote:
> こんにちは 増井(java,java3Dの初心者)と申します。
> 
> 基本的な質問なんですが、Java3DでFrame 上にCanvas?をのせて表示テストをしてい
> るのですが、
> 表示自体は問題ないのですが、メニューのプルダウン表示部分がJava3Dの表示エリア
> の裏側になってしまい
> メニューがみえなくなるのです。
> Frame 上へのJava3Dの表示領域ののせかたがおかしいのでしょうか?
>       ご教授お願いします。
> 
> 以下、コーディング例をのせます。(途中、かなり略しています)
>   (java3dの表示のサンプルが、Appletを継承したものばかりで、Frameにのせた
> 以下の例は
>    試行錯誤してやっと動作したのもので、自信がありません)
> public class frm extends JFrame
> {
>         Gp3d gp3;  // 私が作成したクラス
> 
>         public void initComponents() throws Exception
>         {
>                 gp3 = new Gp3d();
>                 gp3.setSize(new java.awt.Dimension(700,500));
>                 gp3.setVisible(true);
>                 gp3.setBackground(new java.awt.Color(128, 128, 128));
>                 gp3.setLocation(new java.awt.Point(10,30));
>                 getContentPane().add(gp3);
>         }
> }
> 
> public class Gp3d extends Canvas  // 私が作成したクラス
> {
>         public Gp3d() {
>                 Canvas3D C3d = new Canvas3D(null);
>         }
> }

これって,よくある質問なのですが,Canvas3DはHeavyWeightコンポーネントで
メニューのほうは,たぶんLightWeightコンポーネントなので,こういうことが
起こります.そういう時
        JPopupMenu.setDefaultLightWeightPopupEnabled(false);
とするといいようです.
SwingConnectionの「Mixing heavy and light components」
http://java.sun.com/products/jfc/tsc/archive/tech_topics_arch/mixing/mixing.html
を読むとよいでしょう.


-- 
 YUKIE Kishida 
 TIME INTERMEDIA:  yukie@xxxxxxxxxx (http://www.timedia.co.jp/)
 PRIVATE: yukie@xxxxxxxxxx (http://yukie.com/)