当前位置:编程学习 > JAVA >>

菜鸟在学习线程(每隔一秒输出字符串)时,想通过监听在按下p键后结束进程,可是在添加监听时出现错误,求大神指教。如果有其他错误,还望大神指出。

import java.awt.event.*;

//通过继承thread来开发线程
public class 线程测试 {

person p=null;

public static void main(String[] args) {

线程测试 cs=new 线程测试();
}
public void 线程测试()
{
p= new person();
p.start();

this.addKeyListener(p);//这里出现错误,需要自己写这个方法,不知道为什么。
}

}

class person extends Thread implements KeyListener
{
//重写run方法
public void run()
{
//休眠1秒,使线程进入阻塞状态
while(true)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

System.out.println("运行");
}
}

@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_P)
{
System.exit(1);
}
}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}
}
--------------------编程问答-------------------- 你当前这个对象又没有这个方法
还有你的命名方式着实非主流啊。。 --------------------编程问答-------------------- 很迷茫,你标题是点击P键结束,但是代码里的那个p,难道不是你自己定义的person对象? --------------------编程问答-------------------- 二楼前辈,我用person实现KeyListener后不是就能创建对象,再用addKeyListener(p)来添加监听了么,我看书上例子就是这样的过程,为什么还是没这个方法。
命名确实非主流,自己测试就没管那么多,见笑。
--------------------编程问答-------------------- 三楼前辈,代码里的p是person的对象,P键结束是和代码里的p没关系了,
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_P)————>是这里的P.
{
System.exit(1);
}
}
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,