> The JavaFX API does not provide a way to get the state of CAPS LOCK or NUM > LOCK on the keyboard. Being able to read the lock state would allow an > application to inform the user that caps lock was enabled for passwords or > other usages where the keyboard input might not be echoed. It would also > allow an application to do spell checking / auto-correction that might > ordinarily be skipped when typing all upper-case letters. > > We need an equivalent JavaFX API to the existing AWT > `java.awt.ToolKit::getLockingKeyState` method. A natural place to put this in > JavaFX is in the `javafx.application.Platform` class, so we propose to create > a new `Platform::isKeyLocked` method, which will take a `KeyCode` -- either > `CAPS` or `NUM_LOCK` -- and return an `Optional<Boolean>` indicating whether > or not that key is in the locked or "on" state. If we can't read the key > state on a particular platform, we will return `Optional.empty()`, rather > than throwing a runtime exception as AWT does. > > I have provided both an automated Robot test and a manual test. The latter is > needed primarily because we can't set the CAPS lock on Mac using Robot, but > also because we want way to test the case where the user has enabled CAPS > lock before the program starts.
Kevin Rushforth has updated the pull request incrementally with one additional commit since the last revision: Fix docs to address review coments ------------- Changes: - all: https://git.openjdk.java.net/jfx/pull/385/files - new: https://git.openjdk.java.net/jfx/pull/385/files/a8adc594..cb0e10a7 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=385&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=385&range=00-01 Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod Patch: https://git.openjdk.java.net/jfx/pull/385.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/385/head:pull/385 PR: https://git.openjdk.java.net/jfx/pull/385