感谢帮助过我的大哥大姐们 我老提出弱智问题 你们还能不厌其烦的为我解答 我谢谢了

WindFox99 2003-07-03 10:55:36
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyCanvas implements KeyListener,MouseListener
{
Canvas c;
String s="";
public static void main(String[] args)
{
Frame f=new Frame("Canvas");
MyCanvas mc=new MyCanvas();
mc.c=new Canvas();
f.add("Center",mc.c);
f.setSize(200,200);
mc.c.addMouseListener(mc);//为甚麽不能用this
mc.c.addKeyListener(mc);
f.setVisible(true);
}
public void mouseClicked(MouseEvent e)
{
System.out.println("MouseClick");
c.requestFocus();//请问这个方法为甚麽要添加在这里为甚麽不能添加在Keypress方法里
}
public void keyTyped(KeyEvent e)
{
System.out.println("KeyTyped");
s+=e.getKeyChar();//这下面两句不明白
c.getGraphics().drawString(s,0,20);
}
public void keyPressed(KeyEvent e)
{
System.out.println("KeyPressed");
}

public void keyReleased(KeyEvent e)
{
System.out.println("keyReleased");
}
public void mousePressed(MouseEvent e)
{
System.out.println("MousePressed");
}
public void mouseReleased(MouseEvent e)
{
System.out.println("MouseReleased");
}
public void mouseEntered(MouseEvent e)
{
System.out.println("MouseEntered");
}
public void mouseExited(MouseEvent e)
{
System.out.println("MouseExited");
}
}
...全文
31 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiezhirong 2003-07-03
  • 打赏
  • 举报
回复
你如果要把c.requestFocus(); 放到KeyPress里去的话就必须写成this.requestFocus();
至于你这个问题:
mc.c.addMouseListener(mc);//为甚麽不能用this
呵呵,真不知道该怎么解释,你这段代码是放在main函数里的,而main函数是一个static函数,也就是说你用不着用当前类的定义去声明一个变量就可以调用它,也就是说你不用经过以下步骤:MyCanvas mc=new MyCanvas();
mc.main();
而是直接这样调用:MyCanvas.main();
这个时候main函数被调用,注意你使用一个类的定义去调用的,而不是定义一个类的实例,然后再去调用它的。那么如果在main函数里写this的话,这个this代表什么呢?什么也不代表,因为你根本就没有定义一个这样的实例!
WindFox99 2003-07-03
  • 打赏
  • 举报
回复
还是不太明白 我并没有定义static
还有keypress同时为甚麽不能用c.requestFocus(); 是不是这个方法必须在keypress之前定义呀
s+=e.getKeyChar();//这下面两句不太明白
c.getGraphics().drawString(s,0,20);
javabandit 2003-07-03
  • 打赏
  • 举报
回复
1)在static方法或者在main方法里是不能用this关键字的,因为this是表示这个对象实例,而static方法已经可脱离对象实例而单独存在。
2)KeyPress方法被调用时,不一定要被foucus住
WindFox99 2003-07-03
  • 打赏
  • 举报
回复
哦 非常感谢!! 我会慢慢理解你的话的

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧