Java SwingメニューJMenuが隠されている(上書きされている、最下位に表示されている)問題

1260 ワード

ウィンドウにSwingポップアップコンポーネント(メニュー、ドロップダウンボックスなど)と重量級AWTコンポーネントが同時に存在する場合、ポップアップウィンドウは(同じコードで、異なるマシンで上書きされていない可能性があり、少し上書きされている可能性があります)重量級コンポーネントによって遮断される可能性があります.
例:
      メニューまたはドロップダウンボックスであれば、JPopupMenuの静的メソッドsetDefaultLightWeightPopupEnabled(false)を呼び出して、ポップアップされたウィンドウをCanvasやWindowなどの重量級のAWTコンポーネントに強制することで、ポップアップウィンドウが他のAWTコンポーネントによって上書きされないようにすることができます.他のポップアップコンポーネントには、ヘビー級ウィンドウを強制的にポップアップする方法があります.
import javax.swing.*;
  import java.awt.*;
  import java.awt.event.*;

  public class Test extends JApplet {
   public void init() {
    JPopupMenu.setDefaultLightWeightPopupEnabled(false);//    。

    Container contentPane = getContentPane();
    JMenuBar menubar = new JMenuBar();
    JMenu menu = new JMenu("File");

    menu.add("New ...");
    menu.add("Open ...");
    menu.add("Save As ...");
    menu.add("Save");
    menu.add("Exit");

    contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
    contentPane.add(new Button("An AWT Button ............"));

    menubar.add(menu);
    setJMenuBar(menubar);
   }
  }


--------------------- 
  :       
  :CSDN 
  :https://blog.csdn.net/guoquanyou/article/details/38587713 
    :         ,         !