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

[Java3Djp:01296] JPopupMenu の heavyweight化



◆◇ ◆◇ ◆◇   MagicalCastβ(ベータ版)  ◆◇ ◆◇ ◆◇
    ┌──┐                                 ┌──┐
    │\/│ DNSの新MLシステム誕生です!│\/│
    └──┘                                 └──┘
        これまでの簡単・快適そのままで高機能に
      いえいえもっと高速に。βテストにご協力下さい
            ※ fmlでもmajordomoでもありません
◆◇ ◆◇ ◆◇   http://mx7.dns-ml.co.jp/  ◆◇ ◆◇ ◆◇

伊藤です。
こんにちは。

Canvas3DをSwingで使用したいので [Java3Djp:00653] Re: Swing 
を参考にメニューをheavyweight化してみようとしたのですがうまく
行きません。
フレームを作成した後に
  
    JPopupMenu.setDefaultLightWeightPopupEnabled(false);

とやっているのですが すぐにtrueになってしまいます。
タイミングが悪いのでしょうか? 
どちらかというとSwingの話題ですが、うまく行っている方が
おられるようでしたら、アドバイスおねがいします。

WindowsNT4.0+SP5 
JDK1.2.2+Java3D1.1.3
サンプルコードを添付します。

---------------------
伊藤美穂
(株)数理システム
itoh@xxxxxxxxxx



import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class PopupTest{

  //アプリケーションの構築
  public PopupTest() {
    //JFrame作成
    JFrame frame = new JFrame();

    //メニュー作成
    JMenuBar menuBar = new JMenuBar();
    JMenu menu = new JMenu();
    JMenuItem menuItem = new JMenuItem();

    menu.setText("ファイル");
    menuItem.setText("終了");
    menuItem.addActionListener(new ActionListener()  {
      public void actionPerformed(ActionEvent e) {
	System.exit(0);
      }
    });

    menu.add(menuItem);
    menuBar.add(menu);
    frame.setJMenuBar(menuBar);

    frame.setSize(new Dimension(500, 500));

    //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();
  }
}