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();
}
} 展开
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();
}
} 展开
3个回答
展开全部
你的this(Pintu )就没有这个接口,当然会出错了~方法就是前2个说的,要么new addMouseListener,要么implements MouseLIstener。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是你的类没有继承MouseListener接口
不过更好的办法是用匿名内部类
addMouseListener(new addMouseListener
{
}
)
这样写最好
不过更好的办法是用匿名内部类
addMouseListener(new addMouseListener
{
}
)
这样写最好
追问
能不能不这样写,有其他解决方法没?你这样是把监听的内容都放到大括号里面吗?
追答
addMouseListener(this);
addMouseMotionListener(this);
你这里要注册两个监听 必须用这种方法
用this这种只能注册一个监听
大括号里还有一个方法需要实现 把监听内容写在那个方法里就行了...
这个比较复杂了...你可以去百度 匿名内部类注册监听事件.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是没有实现接口呢,如果想用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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询