注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

众里寻他千百度,名师成就满分路

AP 微积分 AP 计算机 腾飞的博客

 
 
 

日志

 
 
关于我

大学讲师,中国首批AP计算机教师,著有中国第一套,历经五年实践证明深受学生欢迎的成功的AP计算机双语教材,2013年以93%的满分率开创了中国AP计算机成功的先河,远远超出全美26.6%的满分率,为中国AP计算机教学树立了典范,并在同年加拿大计算机竞赛中勇夺桂冠,任教学生获哥伦比亚大学,麻省理工学院,卡耐基梅隆大学,宾夕法尼亚大学,康奈尔大学,西北大学等学校录取,远程学生遍及北京、长春、南京、重庆、广州、济南, 深圳、成都、费城,洛杉矶,加州,宾州,新罕布什尔州等地,希望借此平台为信息技术的发展做出贡献!

网易考拉推荐

Java获取窗口鼠标坐标以及键盘按键  

2012-01-14 21:21:24|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
关键词:  Java     获取鼠标坐标     键盘按键    

鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出鼠标事件类型是MouseEvent,主要方法有:

  Java中的鼠标和键盘事件
1、使用MouseListener借口处理鼠标事件
鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出鼠标事件类型是MouseEvent,主要方法有:
getX(),getY() 获取鼠标位置
getModifiers() 获取鼠标左键或者右键
getClickCount() 获取鼠标被点击的次数
getSource() 获取鼠标发生的事件源
事件源获得监视器的方法是addMouseListener(),移去监视器的方法是removeMouseListener()
处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法
mousePressed(MouseEvent) 负责处理鼠标按下事件
mouseReleased(MouseEvent) 负责处理鼠标释放事件
mouseEntered(MouseEvent) 负责处理鼠标进入容器事件
mouseExited(MouseEvent) 负责处理鼠标离开事件
mouseClicked(MouseEvent) 负责处理点击事件
2、使用MouseMotionListener接口处理鼠标事件
事件源发生的鼠标事件有2种:拖动鼠标和鼠标移动
鼠标事件的类型是MouseEvent
事件源获得监视器的方法是addMouseMotionListener()
处理事件源发生的事件的接口是MouseMotionListener 接口中有如下的方法
mouseDragged() 负责处理鼠标拖动事件
mouseMoved() 负责处理鼠标移动事件
3、控制鼠标的指针形状
setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书 P 210)
4、键盘事件
键盘事件源使用addKeyListener 方法获得监视器
键盘事件的接口是KeyListener 接口中有3个方法
public void keyPressed(KeyEvent e) 按下键盘按键
public void keyReleased(KeyEvent e) 释放键盘按键
public void keyTypde(KeyEvent e) 按下又释放键盘按键
package mouseenvent;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Mouse extends JFrame implements MouseListener{
JPanel jp = new JPanel();
JLabel statusbar = new JLabel();
static final long serialVersionUID=0;
public Mouse(){
setTitle("Mouse Event");
getContentPane().add(jp,BorderLayout.CENTER);
getContentPane().add(statusbar, BorderLayout.SOUTH);
jp.addMouseListener(this);
}
public static void main(String[] args){
Mouse frame = new Mouse();
frame.setSize(500,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mousePressed(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"处按下";
statusbar.setText(s);
}
public void mouseReleased(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"处释放";
statusbar.setText(s);
}
public void mouseClicked(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"处点击";
statusbar.setText(s);
}
public void mouseEntered(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"处进入";
statusbar.setText(s);
}
public void mouseExited(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"处离开";
statusbar.setText(s);
}
}
package mouseenvent;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MouseMotion extends JFrame implements MouseMotionListener{
static final long serialVersionUID=0;
JLabel bar = new JLabel();
JTextField text = new JTextField();
public MouseMotion(){
setTitle("Mouse Event");
getContentPane().add(text,BorderLayout.NORTH);
getContentPane().add(bar, BorderLayout.SOUTH);
addMouseMotionListener(this);
}
public void mousePressed(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "x = "+x+"y = "+y;
bar.setText(s);
text.setText(s);
}
public void mouseDragged(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "x = "+x+" y = "+y;
bar.setText(s);
text.setText(s);
}
public void mouseMoved(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "x = "+x+" y = "+y;
bar.setText(s);
text.setText(s);
}
public static void main(String args[])throws Exception{
MouseMotion mouse = new MouseMotion();
mouse.setSize(500,500);
mouse.setVisible(true);
mouse.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
package mouseenvent;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class Key extends JFrame implements KeyListener{
JLabel bar ;
public Key(){
bar = new JLabel();
getContentPane().add(bar,BorderLayout.CENTER);
addKeyListener(this);
}
public void keyPressed(KeyEvent e){
char c = e.getKeyChar();
String s = c+"" ;
bar.setText(s);
}
public void keyReleased(KeyEvent e){
char c = e.getKeyChar();
}
public void keyTyped(KeyEvent e){
char c = e.getKeyChar();
}
public static void main(String args[])throws Exception{
Key key = new Key();
key.setSize(500,500);
key.setVisible(true);
key.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}

如果是在Netbean下新建的是桌面程序

注意:

1)public class MouseEventView extends FrameView implements MouseListener添加鼠标侦听;

2)实现侦听的方法 mouseEntered等方法;

3)在初始化方法中添加如下语句:

         super(app);//自动生成的代码

         initComponents();//自动生成的代码
        mainPanel.addMouseListener(this);

4)public void mouseReleased(MouseEvent e){

int x = e.getX();

int y = e.getY();

String s = "鼠标在坐标"+"("+x+","+y+")"+"处释放";

statusbar.setText(s);
 mainPanel.getGraphics().setColor(Color.ORANGE);
 mainPanel.getGraphics().drawString("I love java!", x, y);

}
//需要在面板中

5)获取系统信息

public void mouseReleased(MouseEvent e){

int x = e.getX();

int y = e.getY();

String s = "鼠标在坐标"+"("+x+","+y+")"+"处释放";

statusbar.setText(s);
 mainPanel.getGraphics().setColor(Color.ORANGE);
 mainPanel.getGraphics().drawString("I love java!", x, y);
// user.home 可以获取当前用户的主目录
//
//java.specification.version 获取当前JDK的版本号
//
//java.class.path 获取classpath
//
//user.name 获取当前用户名
//
//java.home 获取JDK路径
//
//sun.os.patch.level 获取系统版本号..也可以说是补丁号 我的显示为Service Pack 2
//
//user.dir 当前程序的主目录
//
//os.arch 显示系统操作系统的类型 我的显示为X86
//
//os.version 显示系统内部版本号
//
//java.io.tmpdir 显示当前系统的临时目录


String os= System.getProperty("os.name");

String userhome= System.getProperty("user.home");
String username= System.getProperty("user.name");
String osversion= System.getProperty("os.version");
String str=os+userhome+username+osversion;
mainPanel.getGraphics().drawString(str, x, y+20);
}

  评论这张
 
阅读(1152)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017