【问题标题】:Mouse Unmoveable When Any Key Is Pressed Java Swing按下任何键时鼠标无法移动 Java Swing
【发布时间】:2016-07-18 22:46:16
【问题描述】:

我正在尝试制作一个简单的游戏,其中同时使用鼠标和按键来控制角色。我遇到的问题是,只要按住任何键,我就无法移动鼠标。即使我松开按键,在我能够再次移动鼠标之前也会有一点延迟。我认为这可能是由于我使用了键/鼠标侦听器,但是我制作了显示此错误的最简单的工作程序:

package listenerproblem;

import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ListenerProblem extends JFrame{

    public ListenerProblem(){
        super("Problems");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(100, 200);

        JPanel jPanel = new JPanel();
        jPanel.setSize(100,200);
        jPanel.setBackground(Color.WHITE);
        jPanel.setFocusable(true);

        add(jPanel);
        setVisible(true);
    }

    public static void main(String[] args) {
        ListenerProblem listenerProblem = new ListenerProblem();
    }

}

我想知道是什么导致了这个错误,以及 Swing 中是否有任何解决方法,以便可以同时使用鼠标和键。

如果我在 Windows 8.1 上使用东芝 C50-A-1E2 以任何方式很重要 该程序是在 NetBeans 中制作和运行的。非常感谢您的帮助。

【问题讨论】:

  • 您是否在 Event Dispatch Thread 中运行与 UI 相关的代码?
  • 我相信是的。我会为 Key/Mouse Listener 创建一个类,然后执行 jPanel.addKeyListener(new myKeyListener());。然而,在没有任何类型的监听器的情况下,这个简单的程序仍然会出现鼠标卡住的问题。如果你运行这个,你有鼠标冻结吗?
  • 不,我在粘贴和运行代码时不会冻结。您使用哪个 JDK 构建以及使用哪个 JRE 运行?
  • 产品版本:NetBeans IDE 8.1(内部版本 201510222201)Java:1.8.0_91; Java HotSpot(TM) 64 位服务器 VM 25.91-b14 运行时:Java(TM) SE 运行时环境 1.8.0_91-b14。知道为什么会发生这种情况吗?
  • 嗨@Kon,我刚刚发现了我的问题并发布了解决方案。老实说,我希望您能够复制我的问题,并且我的代码存在问题。由于您无法做到,我意识到我的系统和触摸板肯定存在问题,确实存在。如果没有你告诉我你不能让鼠标冻结,我会继续认为我的 Java 代码有问题。非常感谢您花时间帮助我并解决问题;非常感谢。

标签: java swing keylistener mouselistener


【解决方案1】:

问题在于我在带有触摸板的笔记本电脑上运行此代码。我电脑上的设置是 it 阻止我在打字时移动鼠标,并且与代码无关。如果您想在 Windows 上解决此问题,方法如下:

  1. 点击“控制面板”中的“鼠标”(这应该会给您一个“鼠标属性”框)
  2. 然后点击最右边的标签,应该是“设备设置”
  3. 在该选项卡中单击“设置”按钮
  4. 这应该会打开另一个窗口,您要在其中单击“指向”
  5. 这会显示一个名为“PalmCheck”的选项,您应该双击它(打开另一个窗口)
  6. 最后将滑块一直拉到“最小”并单击该窗口上的“关闭”和上一个窗口上的“确定”

当其他人尝试使用相同的代码复制我的问题但无法复制时,我意识到我的问题一定与我的特定系统有关。我要感谢他们帮助我解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多