首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java listeners -鼠标左键-键入时未注册

Java listeners -鼠标左键-键入时未注册
EN

Stack Overflow用户
提问于 2016-12-19 12:38:16
回答 1查看 38关注 0票数 0

我正在编写一个应用程序引擎,但在事件注册系统中发现了一个问题。似乎在键盘上键入并按下鼠标左键时,窗口不会记录鼠标按下。但是,当我在键盘上输入的同时按下鼠标右键时,它实际上注册了。

稍微总结一下代码:

代码语言:javascript
复制
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();
    }
}

解决方法:显然,在Windows10中,“PC设置”->“PC和设备”->“鼠标和触摸板”中有一个设置,可以控制输入后注册点击或移动鼠标的延迟。

EN

回答 1

Stack Overflow用户

发布于 2016-12-27 15:38:17

答案在评论中:

由于代码按预期工作,因此您可能应该检查S.O级别的

配置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41215826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档