到目前为止,我已找到5个解决此问题的方法:

>根据您的IDE和操作系统,这可能会也可能不起作用 – 如果您能够切换到IDE窗口,您可以尝试使用键盘快捷键暂停执行,然后评估表达式以取消鼠标.在这种情况下,您需要评估的表达式是Mouse.setGrabbed(false).当断点命中并且鼠标卡在LWJGL窗口内时,这也很有用.自从我第一次提出这个问题后,我切换到了IntelliJ IDEA,所以这里是如何在IDE中执行此操作:打开“运行”菜单,然后选择“暂停”,然后使用F7或F8进一步逐行执行代码,然后再次按alt u并选择“evaluate expression”.

>配置断点以评估Mouse.setGrabbed(false).

或者,您可以设置断点并应用具有取消鼠标的代码的条件,例如:

包com.acne;

import org.lwjgl.input.Mouse;

public class DebugHelper {

public static boolean restoreMouse() {

Mouse.setGrabbed(false);

return true;

}

}

然后将断点条件设置为com.acne.DebugHelper.restoreMouse()

>远程调试 – 如果您可以访问第二台计算机并且在启动程序之前知道需要远程调试,那么这是一个很好的解决方案.

在第一台计算机上以调试模式启动它并将调试器连接到第二台计算机上.

> [仅限linux]通过启动第二个X会话

切换到tty1 / 2 / …使用ctrl alt Fn(例如ctr alt F1 for tty1),登录并运行命令startx.这应该开始新的X会话,你在tty或tty8的tty.您可以使用ctrl alt Fn(通常为F7和F8)在图形环境之间切换.

不幸的是,如果您的应用程序占用大量内存而无法运行第二个X会话,则这不是一个好的解决方案.

> [仅限linux]您可以添加第二个鼠标指针.您的LWJGL(或OpenGL)应用程序将只抓取一个鼠标指针,您将拥有第二个鼠标指针.

不幸的是,大多数窗口管理器并不正式支持多个鼠标指针,但这并不意味着它不起作用.它确实有效,但有一些烦人的故障.

您可以使用xinput添加第二个鼠标指针:

>运行xinput create-master pointer-name.第二个鼠标指针应出现在屏幕上.这会创建键盘/指针对,您无需对第二个添加的键盘执行任何操作.它不会附加到任何物理设备.

>运行xinput list列出所有设备

在我的笔记本电脑上看起来像这样:

⎡ Virtual core pointer id=2 [master pointer (3)]

⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]

⎜ ↳ ETPS/2 Elantech Touchpad id=14 [slave pointer (2)]

⎜ ↳ A4Tech USB Mouse id=11 [slave pointer (2)]

⎣ Virtual core keyboard id=3 [master keyboard (2)]

↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]

↳ Power Button id=6 [slave keyboard (3)]

↳ Video Bus id=7 [slave keyboard (3)]

↳ Video Bus id=8 [slave keyboard (3)]

↳ Power Button id=9 [slave keyboard (3)]

↳ Lenovo EasyCamera id=10 [slave keyboard (3)]

↳ Ideapad extra buttons id=12 [slave keyboard (3)]

↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]

⎡ new-mouse pointer id=15 [master pointer (16)]

⎜ ↳ new-mouse XTEST pointer id=17 [slave pointer (15)]

⎣ new-mouse keyboard id=16 [master keyboard (15)]

↳ new-mouse XTEST keyboard id=18 [slave keyboard (16)]

新添加的鼠标指针(主设备)的id = 15.我有一个触摸板和一个外接鼠标,所以我可以将其中一个连接到新光标,另一个连接到旧光标.如果您没有2个物理设备 – 您可以保留未连接物理设备的旧指针.

>现在运行xinput reattach slave-device-id master-device-id.例如,如果我想将触摸板连接到新指针:xinput reattach 14 15

在此之后,您应该能够控制新添加的指针.

>当你不再需要第二个鼠标指针时,使用xinput remove-master master-device-id,在我的例子中它将是xinput remove-master 15

>有时您可能需要将设备重新连接到以前的主设备.

注意:最好在开始调试之前添加新指针.我还注意到一些窗口管理器有一些问题,多个游标会导致各种意外错误 – 例如“打字停止工作”,或键入工作,但在错误的窗口.因此,正常启用多个游标可能不是一个好选择.

java鼠标点击暂停程序_java – LWJGL抓取鼠标 – 如果应用程序挂起或使用抓取的鼠标点击断点时调试...相关推荐

  1. java 鼠标点击按钮事件_Java 鼠标点击事件实例

    首先我们应该知道鼠标点击事件怎么实现 其部分代码如下 if (anyEvent.getButton() == MouseEvent.BUTTON1) {} e.getButton()返回值分别为NOB ...

  2. java 带界面的小程序_JAVA 编写一个带有窗口的应用程序

    展开全部 源代码如下: Tetres_windows.java/** 俄罗斯方块62616964757a686964616fe58685e5aeb931333431366333的窗体*///impor ...

  3. 用java编写日历添加窗口一角_Java 实训4 编写一个窗体程序显示日历

    实训要求: 1.使用BorderLayout 进行总体布局 2.在North 位置放置包含两个按钮( 上月和下月)的Panel 3.在South 位置放置一个Label 用于显示当前年份和月份 4.在 ...

  4. java tcp聊天程序_java实现基于Tcp的socket聊天程序

    对于步入编程行业不深的初学者或是已经有所领会的人来说,当学习一项新的技术的时候,非常渴望有一个附上注释完整的Demo.本人深有体会,网上的例子多到是很多,但是很杂不完整,写代码这种东西来不得半点马虎, ...

  5. java 编写 servlet 程序_Java技术分享:如何编写servlet程序

    身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程. 大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易, ...

  6. Java不重复的随机数获取_java获取 1--N 的不重复随机数程序代码

    文章分享一篇关于java获取 1--N 的不重复随机数程序代码,有感兴趣的同学可以参考一下.  代码如下 复制代码 import java.util.ArrayList; import java.ut ...

  7. java双人对弈五子棋源码_JAVA高手接招————— 五子棋双人对弈程序

    展开全部 新建一个chess类,其中代码如下 package work; import java.awt.Color; public class Chess { public static final ...

  8. java ee小程序_JAVA EE社团管理升级版-微信小程序端说明文档

    CLUB+社团管理系统 系统模块设计 微信用户 浏览所有社团(分类) 浏览所有活动 (分类) 加入社团(不可重读加入) 加入活动 (不可重复加入) 修改个人身份信息 登录 查看自己已加入的社团 查看自 ...

  9. linux鼠标点右键无反应,如果鼠标点击右键没有反应怎么办?

    最近有Win7系统用户反映,在浏览网页时看到一些很好看的图片,想要通过右键,进行"图片另存为"时,发现点击鼠标右键压根没反应,用户并不知道这是怎么回事,为此非常苦恼.其实,出现这样 ...

最新文章

  1. LED芯片,应用品,蓝宝石衬底,集成电路,UV
  2. OpenCV中 Mat 按行或按列合并程序
  3. 后备干部,究竟应该提拔什么样的员工?
  4. 骚操作!曾经爱过!用 Python 清理收藏夹里已失效的网站
  5. LightOJ 1278 - Sum of Consecutive Integers 分解奇因子 + 思维
  6. 武汉加油!武大本科生用Python敲出樱花绽放,满屏春天太浪漫
  7. python是什么专业学的-Python开发专业学校排名是什么样的
  8. java timer 返回值,如何让计时器返回java时间
  9. 关于在linux系统下卸载软件的问题
  10. 详解JavaScript的闭包
  11. 整理CVPR2012感兴趣的文章
  12. Kudu的Using Apache Kudu with Apache Impala(官网推荐的步骤)
  13. 居家短期任务赚钱好不好做容易学习吗?
  14. 《Sanmill 直棋游戏》创作之旅
  15. 用户场景法,设计测试用例
  16. WPF另类实现摄像头录像并预览
  17. 滴滴新出的移动端UI组件库 Mand Mobile,提前蹭个热度
  18. Python爬虫——爬虫是什么都可以爬的吗?Robots协议!
  19. BMP与PPM格式的转换
  20. 数据挖掘——关联分析基础介绍(上)

热门文章

  1. Eclipse上安装maven插件时出错
  2. Linux常用命令集锦(一)
  3. 这个“专题”的导读好像忘了更新了
  4. DIV滚动条滚动到指定位置(jquery的position()与offset()方法区别小记)
  5. 深入理解Java:SimpleDateFormat安全的时间格式化 ;
  6. C#中IQueryable和IEnumberable的区别
  7. vc显示jpg,gif图像简单方法
  8. C++_类和对象_对象特性_静态成员函数---C++语言工作笔记047
  9. AndroidStudio_android中实现ImageView的清空操作---Android原生开发工作笔记235
  10. 使用vue的生命周期函数_异步_同步获取字典数据---基于Vue的uniapp手机端_前端UI_uview工作笔记003