-1

我正在开发 JApplet,但我想要一个自定义菜单。当我插入这个菜单时,我仍然得到小程序菜单和我自己的菜单下面。

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

在这种情况下,两个菜单都会出现。我自己的和来自小程序的默认值。如何从小程序中删除默认值?

4

2 回答 2

5

删除小程序的小程序查看器菜单栏的小技巧:

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

鬼鬼祟祟的小程序

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

编译和展示

prompt> javac SneakyApplet.java
prompt> appletviewer SneakyApplet.java
于 2012-02-15T04:04:24.203 回答
0

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

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

于 2012-02-14T19:54:59.153 回答