求救 这个java代码到底是有什么毛病呀谁给指点一下呀
import java.awt.*;
import java.awt.event.*;
public class TestPopupMenu{
private TextArea ta = new TextArea(4,30);
private Frame f = new Frame("测试");
PopupMenu pop = new PopupMenu();
CheckboxMenuItem autoWrap = new CheckboxMenuItem("自动换行");
MenuItem copyItem = new MenuItem("复制");
MenuItem pasteItem = new MenuItem("粘贴");
Menu format = new Menu("格式");
//创建commentItem菜单项,指定使用ctrl+shift快捷键
MenuItem commentItem = new MenuItem("注释",new MenuShortcut(KeyEvent.VK_SLASH,true));
MenuItem cancelItem = new MenuItem("取消注释");
public void init(){
//以匿名内部类的形式创建菜单监听器
ActionListener menuListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
ta.append("单击“"+cmd+"”菜单"+"\n");
if(cmd.equals("退出")){
System.exit(0);
}
}
};
//为icommentItem、exitItem两个菜单项添加事件监听器
commentItem.addActionListener(menuListener);
//为pop菜单添加菜单项
pop.add(autoWrap);
//使用addSeparator方法添加菜单分割线
pop.addSeparator();
pop.add(copyItem);
pop.add(pasteItem);
format.add(commentItem);
format.add(cancelItem);
pop.add(new MenuItem("-"));
pop.add(format);
final Panel p = new Panel();
p.setPreferredSize(new Dimension(300,160));
p.add(pop);
p.addMouseListener(new MouseListener(){
public void mouseReleased(MouseEvent e){
if(e.isPopupTrigger()){
pop.show(p,e.getX(),e.getY());
}
}
});
f.add(p);
f.add(ta,BorderLayout.NORTH);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
ta.append("用户试图关闭窗口!\n");
System.exit(0);
}
});
f.pack();
f.setVisible(true);
}
public static void main(String[] args){
new TestPopupMenu().init();
}
}
对于那个mouseListener就是划红线的那个方法 我在这里面应该是实现了吧 怎么还提示是需要addunimplement method呢 这可不可以不要一个个的实现取方法呢
[解决办法]
MouseListener 有5个抽象方法,你只实现一个,就报错了.
楼主可用适配器类MouseAdpater,这个类都对方法做了实现,你只需覆写自己需要的方法。