删除默认的小程序菜单

时间:2012-02-14 18:53:42

标签: 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);
    }
}

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

2 个答案:

答案 0 :(得分:5)

删除小程序的小程序查看器菜单栏的小黑客:

  • 测试期间。
  • 使用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();
        }
    }
}

编译&amp;显示

prompt> javac SneakyApplet.java
prompt> appletviewer SneakyApplet.java

答案 1 :(得分:0)

小程序没有默认的菜单栏。你的意思是appletviewer实用程序的菜单栏吗?没有办法删除它,因为框架不是由applet创建的;以同样的方式,您无法从最终托管小程序的Web浏览器中删除菜单栏。

编辑我错了,请看安德鲁的回答。