如何在javafx中获得键盘Caps Lock状态

时间:2014-10-23 13:26:42

标签: javafx javafx-2 javafx-8

在我的项目中,如何键盘大写锁定状态。我已经提到了这个问题How can I get the Caps Lock state, and set it to on, if it isn't already?。但我在javafx得到解决方案。请给我解决方案。我也是这个网站的参考https://community.oracle.com/thread/2415027?tstart=0

2 个答案:

答案 0 :(得分:2)

您需要此导入:

import java.awt.Toolkit;

如果你想要它,无论如何,只需打开它:

Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);

如果您想首先检查它是否已关闭,请将其打开:

if (!Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
        Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
    }

最后,如果您想在两种状态之间切换:

if (Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
        Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false);
    } else {
        Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
    }

答案 1 :(得分:1)

我认为不可能直接在JavaFX 8中查询capslock / numlock状态.Robert的解决方案使用AWT Toolkit,它不是JavaFX,但应该适合你。您可能希望create a feature request in the JavaFX issue tracker锁定密钥状态跟踪。