New API to read Caps-Lock and Num-Lock state

Jonathan Giles jonathan at jonathangiles.net
Sat Jan 16 08:46:37 UTC 2021


Hi friends,

Just to throw out an alternate API approach (which I would not go anywhere
near close to saying is a better approach), we could consider a three-value
enum getter API:

public static KeyLockState Platform::getKeyLockState(KeyCode keyCode);

Where KeyLockState = { LOCKED, NOT_LOCKED, NOT_PRESENT }

I'll be the first to argue against yet another enum, but I wanted to throw
this out there as an alternate approach that avoids the needs for checked
exceptions (which is what I assume is meant by 'throw an exception', as
opposed to throwing a runtime exception).

-- Jonathan

On Sat, Jan 16, 2021 at 6:40 AM Kevin Rushforth <kevin.rushforth at oracle.com>
wrote:

> For JavaFX 17, I am planning to add a minor enhancement to read the
> state of the keyboard lock keys, specifically, Caps-Lock, Num-Lock, and
> maybe Scroll-Lock (although I might defer the latter to a future version
> since it will be more difficult to test, and doesn't seem as useful).
>
> This is currently tracked by JDK-8259680 [1].
>
> The proposed API would be something like:
>
>          public static boolean Platform::isKeyLocked(KeyCode keyCode);
>
> One question is whether we should throw an exception if the key state
> cannot be read on a particular system (e.g., Num Lock on macOS), which
> is what the similar AWT API does. I don't have a strong opinion on that
> poont, although I wouldn't want to throw an exception if the keyboard
> doesn't have the key in question, as long the system is able to read the
> state accurately.
>
> Comments are welcome.
>
> -- Kevin
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8259680
>
>


More information about the openjfx-dev mailing list