如何用JAVA实现按下键盘的一个按键,获取当前鼠标位置

 我来答
木木木Ozzzz
2014-06-25 · TA获得超过107个赞
知道答主
回答量:47
采纳率:0%
帮助的人:29.8万
展开全部
推荐easyUI,其中控件应该满足你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kasim416
推荐于2018-03-28 · TA获得超过707个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:293万
展开全部
import java.awt.BorderLayout;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextField;


public class test5 {
static Point mousepoint;
static JTextField text = new JTextField();
public static void main(String arg[]){

text.addKeyListener(new KeyListener() {

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

}

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

}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode()==KeyEvent.VK_SPACE){
mousepoint = MouseInfo.getPointerInfo().getLocation();
text.setText(""+mousepoint.x+"   "+mousepoint.y);
System.out.print(""+mousepoint.x+"   "+mousepoint.y+"\r\n");  
}
}
});
        JFrame frame = new JFrame();
frame.setLocationRelativeTo(null); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

text.setEditable(false);
frame.add(text, BorderLayout.NORTH);

frame.pack();
frame.setVisible(true);
}
 

}

首先增加一个鼠标坐标的获取方法

mousepoint = MouseInfo.getPointerInfo().getLocation();

其次,增加一个键盘对应按键的监听时间

text.addKeyListener(new KeyListener()

系统会自动添加3个方法,在keyPressed,也就是键盘按下中写就OK


这个方法的缺点就是 这个监听事件必须赋予给某个对象,只有当你当前焦点是这个对象的时候才能实施键盘监听,在上面这段代码中就是给这个textfield增加监听时间。如果当你的界面中有多个控件,你的焦点处于别的控件上,那么这个监听是不会生效的


如果想做到实时让监听效果生效,无视焦点问题,那貌似只能借助非java底层自带的其他功能包

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式