我想验证一下书上关于弹出式菜单的例子,结果写完了,编译后没发现错误,可以运行,但是没有实现弹出菜单的效果,那位大侠看是怎么回事?
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class EditWindow extends JFrame implements ActionListener
{
JPopupMenu menu;
JMenuItem itemCopy,itemCut,itemPaste;
JTextArea text;
EditWindow(String s)
{
super(s);
setSize(260,270);
setLocation(120,120);
setVisible(true);
menu=new JPopupMenu();
itemCopy=new JMenuItem("复制");
itemCut=new JMenuItem("剪切");
itemPaste=new JMenuItem("粘贴");
menu.add(itemCopy);
menu.add(itemCut);
menu.add(itemPaste);
text=new JTextArea();
text.addMouseListener(new MouseAdapter()
{
public void MousePressed(MouseEvent e)
{
if(e.getModifiers()==InputEvent.BUTTON3_MASK)
{
menu.show(text,e.getX(),e.getY());
}
}
});
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Container con=getContentPane();
con.add(new JScrollPane(text),BorderLayout.CENTER);
con.validate();
validate();
itemCopy.addActionListener(this);
itemCut.addActionListener(this);
itemPaste.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itemCopy)
{
text.copy();
}
else if(e.getSource()==itemCut)
{
text.cut();
}
else if(e.getSource()==itemPaste)
{
text.paste();
}
}
}
public class Example
{
public static void main(String args[])
{
EditWindow win=new EditWindow("窗口");
}
}