- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个包含多项检查的输入表单。其中之一是检查 CapsLock 是否处于 Activity 状态。如果我尝试将此功能与 Java Swing 一起构建,它会起作用,请参见下面的代码。但在 JavaFX 中,它根本不起作用。我每次检查都得到相同的状态;好像我的应用程序只是要求初始状态,然后保存它,并进一步呈现...
JavaSwing(工作正常)
frame.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_CAPS_LOCK){
System.out.println(Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
} else if(e.isShiftDown()){
System.out.println("SHIFT");
}
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_CAPS_LOCK){
System.out.println(Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
} else if(e.isShiftDown()){
System.out.println("SHIFT");
}
}
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_CAPS_LOCK){
System.out.println(Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
} else if(e.isShiftDown()){
System.out.println("SHIFT");
}
}
});
JavaFX(始终呈现相同状态)
scene.setOnKeyReleased(new EventHandler<javafx.scene.input.KeyEvent>() {
@Override
public void handle(javafx.scene.input.KeyEvent event) {
if(event.getCode() == KeyCode.CAPS){
System.out.println("CAPS");
System.out.println(Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
}
}
});
有人知道为什么吗?我能做什么?
最佳答案
编辑: 问题似乎与 Windows 相关。 This question has an answer that might work for you
当反复按下大写锁定键时,这对我有以下控制台输出:
Capslock pressed
Capslock state: true
Capslock pressed
Capslock state: false
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import java.awt.*;
import java.awt.event.KeyEvent;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Pane root = new Pane();
Scene scene = new Scene(root, 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
//scene.setOnKeyPressed( event -> {
scene.setOnKeyReleased( event -> {
if ( event.getCode() == KeyCode.CAPS ) {
System.out.println("Capslock pressed");
System.out.println("Capslock state: " + Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
}
});
}
public static void main(String[] args) {
launch(args);
}
}
我不确定是什么问题?
关于java - 在 JavaFX 中获取 CapsLock 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36148952/
这是我的代码: state := GetKeyState("Capslock", "T") if state = true F1::Run explorer F2::Run notepad F3::R
我有下面的代码可以在应用程序启动时更改 Caps Lock 键的状态。 我想在启动应用程序时将 Caps Lock 状态更改为 ON(如果它已经处于 ON 状态,则应保持 ON 状态)。当应用程序关闭
我有一个 DataGridTemplateColumn,其中 DataTemplate 作为 PasswordBox。 如果 CapsLock 被切换,我想警告用户。 private void Pas
我正在尝试编写一些东西,在输入用户名/密码之前通过错误提供程序通知用户大写锁定已打开。我发现了一些看起来像这样的代码: private void nameInputTextBox_TextChange
我想知道我是否可以使用下面的相同代码并进行一些小的更改以添加我需要的功能。写法: ::::Set WshShell = CreateObject("WScript.Shell") ::::WshShe
我想知道我是否可以使用下面的相同代码并进行一些小的更改以添加我需要的功能。写法: ::::Set WshShell = CreateObject("WScript.Shell") ::::WshShe
我只是想知道是否可以在某个 input 字段上将输入自动更改为 capitalized,用户在该字段中输入了一个大写锁定的值。 上限 = 测试名称 预期:测试名称 Caps Off = 测试名
我有一个用 C++ 编写并在 Windows 上运行的程序。我允许用户绑定(bind) CAPSLOCK 键,所以如果他们每次按下它时,他们不会同时切换他们的 CAPSLOCK 状态,那就太好了。 我
在 src$Review 中,每一行都用俄语填充。我想计算每行中的 CAPSLOCK。例如,在“我的苹果是绿色的”中,我不仅要计算大写字母的数量,还要计算 CAPSLOCK 的数量(没有“My”,只有
CapsLock 似乎是重新映射的两个最棘手的键之一(另一个是电源按钮)。 我可以全局拦截 NSEvent-s: _eventTap = CGEventTapCreate( kCGHIDEve
我刚刚发现大写锁定和 Shift 键(可能还有其他一些键)会影响连接到计算机的所有键盘。 (测试我编写的程序的危险之一,我只有两只手,所以我花了很长时间才意识到这样的问题)因此,将击键分开很好,但是
我想使用 Java 确定 CapsLock 的当前状态。到目前为止我已经尝试过以下操作。 Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent
我以下用于检查 Capslock 是否打开的代码在“onkeypress”事件上工作正常。 但我想要它用于“onfocus”事件。 我尝试将控件的“onkeypress”替换为“onfocus”,但它
我正在开发一个使用伟大的 MASShortcut repository 的应用程序什帕科夫斯基。我引用这个是为了询问是否有一种方法可以像 Shpakovski 在他的存储库中那样注册 Capslock
德尔福 2010 企业版 如何在显示虚拟键盘时自动打开 CapsLock。 最佳答案 在 FormCreate 上尝试一下: procedure TForm1.FormCreate(Sender: T
基本上我有这个问题:CapsLock password message in TEdit visually fails with VCL Styles . 我想做的不是解决答案或评论中所示的问题。 我
(Mac)是否可以重新映射大写锁定以执行除操作系统预期用途以外的任何其他操作?我曾尝试在Karabiner和“系统偏好设置”>“键盘”>“修改键”中使用它,但是没有运气。这并不是使它成为修饰键,而只是
您可能会发现是否已按下 CapsLock 键订阅 KeyDown/KeyUp 事件。然后根据该输入切换 CapsLock 的状态。这种方法的问题是您需要 CapsLock 键的初始状态才能开始切换它。
我正在尝试构建一个包含多项检查的输入表单。其中之一是检查 CapsLock 是否处于 Activity 状态。如果我尝试将此功能与 Java Swing 一起构建,它会起作用,请参见下面的代码。但在
我创建了一个函数来防止用户在字段中输入除数字之外的任何内容(但允许使用“退格”、“输入”等有用的键...) 这里是一个 jsFiddle 的例子:http://jsfiddle.net/cWHRp/1
我是一名优秀的程序员,十分优秀!