java中鼠标和键盘监听如何同时实现

qq_41313233 2017-12-08 09:18:36
/*为什么我只能实现鼠标事件,键盘事件无法实现,求指出错误*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Shixun5 extends JFrame{
private JLabel lx,ly,l1,l2;
private JTextField tx,ty;
Container container;
public Shixun5(){
this.setTitle("实训5");
this.setSize(600, 450);
this.setVisible(true);
container=this.getContentPane();
container.setLayout(new FlowLayout());
lx=new JLabel("X坐标");
ly=new JLabel("Y坐标");
l1=new JLabel();
l2=new JLabel();
tx=new JTextField(10);
ty=new JTextField(10);
container.add(lx);
container.add(tx);
container.add(ly);
container.add(ty);
container.add(l1);
container.add(l2);
this.addMouseListener(new mLis());
this.addMouseMotionListener(new mmLis());
this.addKeyListener(new keyLis());
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
class mLis extends MouseAdapter{
public void mouseClicked(MouseEvent e){
l1.setText("单击鼠标"+e.getClickCount()+"次");
}
public void mousePressed(MouseEvent e){
l1.setText("鼠标按钮按下 ");
}
public void mouseReleased(MouseEvent e){
l1.setText("鼠标按钮松开 ");
}
public void mouseEntered(MouseEvent e){
l1.setText("鼠标进入窗口");
}
public void mouseExited(MouseEvent e){
l1.setText("鼠标不在窗口");
}
}
class mmLis extends MouseMotionAdapter{
public void mouseMoved(MouseEvent e){
int x=e.getX();
int y=e.getY();
tx.setText(String.valueOf(x));
ty.setText(String.valueOf(y));
}
public void mouseDragged(MouseEvent e){
l1.setText("拖动鼠标");
}
}
class keyLis extends KeyAdapter{
public void keyTyped(KeyEvent e){
char c=e.getKeyChar();
l2.setText("你按下的键盘键是"+c+"");
}
public void KeyPressed(KeyEvent e){
if(e.getKeyCode()==27)
System.exit(0);
}
}
public static void main(String[]args){
new Shixun5();
}

}
...全文
613 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
钢琴上的代码 2017-12-18
  • 打赏
  • 举报
回复
说实话,额米看懂,楼主解决了的话记得回来回复啊.
thinking code 2017-12-08
  • 打赏
  • 举报
回复
运行的时候光标在文本框了,键盘事件冲突了,这里加两句代码就可以了
		tx = new JTextField(10);
		ty = new JTextField(10);
		tx.setEnabled(false);
		ty.setEnabled(false);
Java Agent是Arthas使用的技术,是Skywalking使用的技术,是一份十分重要的技术。 课程的稀缺性在此之前,市面上并没有针对Java Agent进行系统介绍的课程。 通过搜索引擎查找,会发现与Java Agent相关的内容大多是个人知识总结分享的内容。这些内容有如下特点:内容质量不一详略程度不一学习难度千差万别总体上来说,学习者很难有一个整体认知、系统学习的过程。 课程的设计目标 在构思课程内容时,本课程带有以下目标:课程学习梯度:从简单到复杂,让学习者有一个循序渐进的理解过程。构造完整、统一的知识体系:不是零散的知识点堆砌,而是有一个统一的贯穿始终的知识框架。具有可操作性的代码示例,不只是讲概念,更注意于实践。课程内容安排 本课程通过四章内容对Java Agent相关知识进行讲解:第一章,介绍Agent Jar的三个组成部分:Manifest、Agent Class和ClassFileTransformer。第二章,介绍Agent Jar的两种启动方式:从命令行启动和使用Attach机制启动。第三章,介绍如何利用Instrumentation API来实现Agent Jar的功能。第四章,Java Agent的应用与技巧。 通过本课程的学习,让同学们更好地建立起一个完整的知识体系:  讲师介绍我叫刘森,南京师范大学研究生毕业,2015年获得信息系统项目管理师(高级),2014年获得系统集成项目管理工程师(级)。 目前,我的课程都是围绕着“Java字节码”技术展开: 《Java Agent基础篇》是在一个运行JVM当提供修改字节码的机会《Java ASM系列》(免费课程)是一个操作字节码的类库《Java 8 ClassFile》专注于字节码的理论知识,入选为“51CTO数字化人才证书项目认证课程” 因此,我对字节码技术有较为深入的研究和理解,大家想学习字节码的技术可以找我:字节码技术找刘森,轻松学习又省心~~~ 

58,452

社区成员

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

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