addMouseListener(this) 中用this出错,怎么回事

importjava.awt.*;importjava.applet.*;importjava.awt.event.*;publicclassPintuextendsAp... import java.awt.*;
import java.applet.*;
import java.awt.event.* ;

public class Pintu extends Applet
{
public void init()
{

//添加鼠标监听事件
addMouseListener(this);
addMouseMotionListener(this);
}

public static void main(String args[]){
Pintu pintu=new Pintu();
}
}
展开
 我来答
F22张杰
推荐于2018-04-19 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:83.8万
展开全部
你的this(Pintu )就没有这个接口,当然会出错了~方法就是前2个说的,要么new addMouseListener,要么implements MouseLIstener。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有响应m2
2012-12-03 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3491万
展开全部
应该是你的类没有继承MouseListener接口
不过更好的办法是用匿名内部类
addMouseListener(new addMouseListener
{
}
)
这样写最好
追问
能不能不这样写,有其他解决方法没?你这样是把监听的内容都放到大括号里面吗?
追答
addMouseListener(this);
addMouseMotionListener(this);
你这里要注册两个监听 必须用这种方法
用this这种只能注册一个监听
大括号里还有一个方法需要实现 把监听内容写在那个方法里就行了...
这个比较复杂了...你可以去百度 匿名内部类注册监听事件.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪海情缘
2012-12-03 · TA获得超过170个赞
知道小有建树答主
回答量:204
采纳率:25%
帮助的人:62.7万
展开全部
你是不是没有实现接口呢,如果想用this的话,你要在类名后implements MouseLIstener。
追问
加在
public class Pintu extends Applet

后面吗?加哪
追答
给你个参考!import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Example10_10{
public static void main(String args[]){
EditWindow win=new EditWindow("窗口");
}
}
class EditWindow extends JFrame implements ActionListener{
JMenuBar menubar;
JMenu menu;
JSplitPane splitPane;
JMenuItem itemCopy,itemCut,itemPaste;
JTextArea text1,text2;
EditWindow(String s){
setTitle(s);
setSize(260,270);
setLocation(120,120);
setVisible(true);
menubar=new JMenuBar();
menu=new JMenu("编辑");
itemCopy=new JMenuItem("复制");
itemCut=new JMenuItem("剪切");
itemPaste=new JMenuItem("粘贴");
menu.add(itemCopy);
menu.add(itemCut);
menu.add(itemPaste);
menubar.add(menu);
setJMenuBar(menubar);
text1=new JTextArea();
text2=new JTextArea();
splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,text1,text2);
splitPane.setDividerLocation(120);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
add(splitPane,BorderLayout.CENTER);
validate();
itemCopy.addActionListener(this);
itemCut.addActionListener(this);
itemPaste.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==itemCopy)
text1.copy();
else if(e.getSource()==itemCut)
text1.cut();
else if(e.getSource()==itemPaste)
text2.paste();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式