删除默认的小程序菜单

Pro*_*oCx -1 java applet japplet

我正在研究JApplet,但我想要一个自定义菜单.当我插入此菜单时,我仍然得到applet菜单并在我自己的菜单下面.

package multiformat;
import ui.*;
import javax.swing.*;

import java.awt.*;

public class CalculatorMVC extends JApplet{

        Command command;                // het model
        JTextField input;

        public void init()
        {
            resize(250,200);

            // Maak het model
             Calculator calc=new Calculator();

            // Maak de controller en geef hem het model
            command = new Command(calc);
            input = new JTextField();
            input.setHorizontalAlignment(input.RIGHT);

            JMenuBar menuBar = new JMenuBar();
            JMenu menu = new JMenu("Menu");
            menuBar.add(menu);
            JMenu help = new JMenu("Help");
            menuBar.add(help);
            // Create a menu item
            JMenuItem item = new JMenuItem("Label");
            //item.addActionListener(actionListener);
            menu.add(item);

    //      this.setJMenuBar(menuBar);
            getContentPane().add(input, BorderLayout.NORTH);
            getContentPane().add(command,BorderLayout.SOUTH);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,两个菜单都显示出来.我自己和applet的默认.如何从applet中删除默认值?

And*_*son 5

一个小小的黑客,删除小程序的applet查看器菜单栏:

  • 在测试期间.
  • 使用Java Web Start启动自由浮动.
  • 从浏览器中的页面拖出.(实际上你可能需要为此更改它,因为在init()调用时,applet仍然嵌入在页面中,并且没有applet查看器框架可以从中删除菜单栏.)

SneakyApplet

//<applet code='SneakyApplet' width=400 height=30></applet>
import java.awt.*;
import javax.swing.*;

public class SneakyApplet extends JApplet {

    public void init() {
        add(new JLabel("Look ma!  No Menu!"));
        Frame[] frames = Frame.getFrames();
        for (Frame frame : frames) {
            frame.setMenuBar(null);
            frame.pack();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编译和显示

prompt> javac SneakyApplet.java
prompt> appletviewer SneakyApplet.java
Run Code Online (Sandbox Code Playgroud)