可以啊,从JFrame派生一个子类,放到它的构造函数里就可以了
JMenuBar mb = new JMenuBar();JMenu fileMenu = new JMenu( "File" );
JMenuItem openMenuItem = new JMenuItem( "Open..." );fileMenu.add( openMenuItem );
mb.add( fileMenu );
setJMenuBar( mb );
JMenuBar mb = new JMenuBar();JMenu fileMenu = new JMenu( "File" );
JMenuItem openMenuItem = new JMenuItem( "Open..." );fileMenu.add( openMenuItem );
mb.add( fileMenu );
setJMenuBar( mb );
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
class PopupMenutest extends JPanel
{
static JFrame frame1;
JLabel l1;
JPopupMenu popupMenu;
public PopupMenutest()
{
l1=new JLabel("王永民电脑有限公司");
popupMenu=new JPopupMenu();
JMenuItem menu1=new JMenuItem("桔子");
JMenuItem menu2=new JMenuItem("菠萝");
JMenuItem menu3=new JMenuItem("芒果");
menu1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
l1.setText("桔子");
}
});
menu2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
l1.setText(" 菠萝");
}
});
menu3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
l1.setText("芒果");
}
});
popupMenu.add(menu1);
popupMenu.add(menu2);
popupMenu.add(menu3);
addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
if(e.isPopupTrigger());
{
popupMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
});
add(l1);
}
public static void main(String args[])
{
frame1=new JFrame("");
PopupMenutest p1=new PopupMenutest();
frame1.getContentPane().add("Center",p1);
frame1.getContentPane().setBackground(Color.gray);
frame1.setSize(200,200);
frame1.addWindowListener(new WindowAdapter(){
public void WindowClosing(WindowEvent e){
System.exit(0);
}
});
frame1.setVisible(true);
}
}
// <applet code=Example15_5 width=300 height=200></applet>
class Menuwindow extends Frame implements ActionListener
{ MenuBar menubar;
Menu menu1,menu2;
MenuItem item1,item2,item3,item4,item5,item6;
TextArea text;
Menuwindow(String s, int a,int b) //构造方法
{ super(s); //super()必需在第一句。
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("编辑");
item1=new MenuItem("新建");item2=new MenuItem("保存");
item3=new MenuItem("打印");item4=new MenuItem("复制");
item5=new MenuItem("全选");item6=new MenuItem("粘贴");
text=new TextArea();
setLayout(new GridLayout(1,1)); setSize(a,b);
setBackground(Color.white); setVisible(false);
menu1.add(item1);menu1.add(item2);
menu1.add(item3);menu2.add(item4);
menu2.add(item5);menu2.add(item6);
menubar.add(menu1);menubar.add(menu2);
setMenuBar(menubar);
add(text); pack();
item1.addActionListener(this); //把窗口作为菜单项的监视器。
item2.addActionListener(this); item3.addActionListener(this);
item4.addActionListener(this); item5.addActionListener(this);
item6.addActionListener(this);
}
public void actionPerformed(ActionEvent e)//实现接口中的方法。
{ if(e.getSource()==item1)
{ text.setText(item1.getLabel()); }
else if (e.getSource()==item2)
{ text.setText(item2.getLabel()); }
else if(e.getSource()==item3)
{ text.setText(item3.getLabel()); }
else if (e.getSource()==item4)
{ text.setText(item4.getLabel()); }
else if(e.getSource()==item5)
{ text.setText(item5.getLabel()); }
else if (e.getSource()==item6)
{ text.setText(item6.getLabel()); }
}
}
public class Example15_5 extends Applet implements ActionListener
{ Menuwindow window ;
Button button1,button2;
public void init()
{ button1=new Button("打开窗"); button2=new Button("关闭窗");
window=new Menuwindow("家园",60,60);
button1.addActionListener(this); button2.addActionListener(this);
add(button1);add(button2);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ window.setVisible(true); }
else if(e.getSource()==button2)
{ window.setVisible(false); }
}
}