我正在研究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中删除默认值?
答案 0 :(得分:5)
删除小程序的小程序查看器菜单栏的小黑客:
init()
时,applet仍然嵌入在页面中,并且没有applet查看器框架可以从中移除菜单栏。)
//<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
答案 1 :(得分:0)
小程序没有默认的菜单栏。你的意思是appletviewer
实用程序的菜单栏吗?没有办法删除它,因为框架不是由applet创建的;以同样的方式,您无法从最终托管小程序的Web浏览器中删除菜单栏。
编辑我错了,请看安德鲁的回答。