使用jframe进行新的个人项目.我的目标是将ActionListener中的框架关闭到背景,并且当按下特定的键时(Ctrl Shft L),我想打开框架.
我不确定如何才能保持较低的CPU使用率.我知道我可以将帧可见性设置为false,然后可能对键使用通用的ActionListener,但是我有一些问题(和疑问).
>这是最好的方法吗?我试图将CPU使用率保持在尽可能低的水平.
>当框架不可见时,ActionListener还能工作吗?
>如何聆听多次按键?我有个主意,但听起来并不可行.
解决方法:
好吧,问题在于java被设计为与平台无关.
为了达到这个目的,用这种编程语言编写的程序必须有一些限制.
即使您的窗口/程序没有设置焦点,您也要捕获按键.
实际上,您需要编写的是某种全局密钥侦听器.
您无法在Java中执行此类操作.实际上,您必须选择一种更加面向机器的编程语言(例如c / c)才能实现所需的功能.
在Java中,只有使用Java本机接口(简称JNI)才能实现这些功能.
使用JNI,可以编写一个库来挂接c / c等关键事件,并使用Java程序调用库的方法.
JNativeHook(https://github.com/kwhat/jnativehook)使用此确切方法.但是好吧,我还没有尝试过这个框架,所以我不知道它是否有效.
但是我曾经使用过它,对我来说效果很好:http://softk.de/opensource/jglobalkeylistener.html
即使站点是用德语编写的,您也可以下载源代码,而不必惊慌,源代码是用英语记录的,甚至代码中的注释也是英语的.
PS:如果那行不通,它可能会帮助您在Google上搜索“ java global keylogger”之类的内容,因为那正是keylogger所做的(很显然它还会记录密钥),而且我认为还会有更多东西可能对您有帮助.
问候,Loki
标签:java,swing,jframe,jframe 来源: https://codeday.me/bug/20191010/1883525.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。