概述
我正在编写应用程序引擎,但我在事件注册系统中发现了一个问题。看起来当在键盘上键入并按下鼠标左键时,窗口不会注册鼠标按下。但是当我在键盘上键入的同时按下鼠标右键时,它实际上会注册。
总结一下代码:
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class BasicEventTest implements KeyListener, MouseListener, MouseMotionListener {
JFrame frame;
/*********************************************** INPUT HANDLING ***********/
public void keyPressed(KeyEvent k) {
System.out.println(k.getKeyCode());
}
public void keyReleased(KeyEvent k) {}
public void keyTyped(KeyEvent k) {}
public void mousePressed(MouseEvent m) {
System.out.println("MOUSEPRESS " + m.getButton());
}
public void mouseReleased(MouseEvent m) {}
public void mouseMoved(MouseEvent m) {}
public void mouseDragged(MouseEvent m) {}
public void mouseEntered(MouseEvent m) {}
public void mouseExited(MouseEvent m) {}
public void mouseClicked(MouseEvent m) {}
/**************************************************** CONSTRUCTOR *********/
public BasicEventTest() {
frame = new JFrame("BasicEventTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setPreferredSize(new Dimension(640, 480));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
frame.createBufferStrategy(2);
frame.setIgnoreRepaint(true);
frame.addKeyListener(this);
frame.addMouseListener(this);
frame.addMouseMotionListener(this);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
BasicEventTest test = new BasicEventTest();
}
}
解决:
显然在Windows 10中,在PC设置 - > PC和设备 - >鼠标和触摸板中有一个设置,它控制在键入后注册点击或移动鼠标的延迟。
最后
以上就是阳光羽毛为你收集整理的java无法注册监听器_Java监听器 - 鼠标左键在键入时不注册的全部内容,希望文章能够帮你解决java无法注册监听器_Java监听器 - 鼠标左键在键入时不注册所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复