- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个错误,说我的条件总是错误的。基本上,在 OSX 上关闭应用程序的惯例是使用组合键“COMMAND+W”
我正在尝试在我的程序中复制这一点。
scene.setOnKeyPressed(e -> {
if ((e.getCode() == KeyCode.COMMAND) && (e.getCode() == KeyCode.W)) {
controller.exitClick();
}
});
如果我只有第一个条件,它就可以工作,但我当然不希望用户只需按 W 即可关闭应用程序。
Controller 只是我的 Controller 类的一个实例,我从中借用了退出函数,因为我在应用程序上定制了退出和最小化按钮。
这是怎么回事?
最佳答案
事件 setOnKeyPressed
一次检测一个个键,您无法在一种情况下检查其中两个键,因为它只能应用于一个键。
您可以做的是创建几个 boolean
变量(每个键一个),并在 setOnKeyPressed
中设置单独检查每个键的条件,如果当前按下的键是其中之一,则将匹配变量设置为 true
。检查按下哪个键后,您检查这两个变量,如果两者都为 true
则有人按下了这两个键。
一个小问题是变量永远不会变成false
,如果有人没有按下按键怎么办?您可以使用 setOnKeyReleased
这是释放按键时调用的按键事件。分别检查每个键,如果释放了该键,则将条件变量设置为 false
。
所以应该可以了。如果您需要示例代码,请询问。
编辑
下面的示例展示了 JavaFX 中多键按下的检测。
首先,我需要定义 boolean 变量来保存我的键是否被按下。它们应该是类变量。
boolean keyCommand = false;
boolean keyW = false;
然后我们需要向场景中添加 2 个事件:
onKeyPressed 事件将检测我们的每个键何时被按下。请记住,每个键都会单独调用该事件。
onKeyReleased 事件将检测到我们的按键不再被按下。也为每个键单独调用此事件。
scene.setOnKeyPressed(e -> {
if(e.getCode() == KeyCode.COMMAND)
keyCommand = true;
else if(e.getCode() == KeyCode.W)
keyW = true;
if(keyCommand && keyW)
//both are pressed
doSomething();
});
现在进入第二个 Activity :
scene.setOnKeyReleased(e -> {
if(e.getCode() == KeyCode.COMMAND)
keyCommand = false;
else if(e.getCode() === KeyCode.W)
keyW = false;
});
就是这样。现在, boolean 变量可能不是保存数据的完美方式,BooleanProperty
可能更可取,但它应该也能工作。
关于java - JavaFX 中使用 Lambda 表达式的键绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386926/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!