Keyboard events

Artem Ananiev artem.ananiev at oracle.com
Wed Oct 9 04:11:14 PDT 2013


On 10/9/2013 4:19 AM, Pedro Duque Vieira wrote:
> Do you want me to file a Jira issue for this?

Yes, please.

I haven't found such a feature request in JavaFX JIRA. The only issue 
which is slightly related is

https://javafx-jira.kenai.com/browse/RT-32302

but it's not exactly about querying for keyboard state.

Thanks,

Artem

> Regards,
>
>
> On Mon, Oct 7, 2013 at 6:03 PM, Artem Ananiev <artem.ananiev at oracle.com
> <mailto:artem.ananiev at oracle.com>> wrote:
>
>
>     On 10/7/2013 6:53 PM, Richard Bair wrote:
>
>         That being said, this seems like a very common use case, and I
>         wonder if there is something more we could do (in the longer
>         term, short term do as Artem suggests)
>
>
>     One of the options is to provide API to query for keyboard state at
>     any arbitrary moment, whether particular key is pressed or not. Even
>     if we only support locking keys (Caps, Num, Scroll, Kana) and
>     control keys (Shift, Control, Command, Alt), it will be of great
>     value. Game developers will be happy to have such API for all the
>     keys, including navigation and letter ones.
>
>     Thanks,
>
>     Artem
>
>
>             On Oct 7, 2013, at 3:56 AM, Artem Ananiev
>             <artem.ananiev at oracle.com <mailto:artem.ananiev at oracle.com>>
>             wrote:
>
>
>                 On 10/7/2013 2:40 AM, Pedro Duque Vieira wrote:
>                 Hi,
>
>                 I have the following use case:
>                 When the user presses shift and the mouse is hover the
>                 chart component the
>                 cursor must change to an open hand cursor signaling to
>                 the user that the
>                 chart is ready for a panning action.
>                 The problem is that for this to be possible I want the
>                 chart to be able to
>                 listen to keyboard events even when it doesn't have focus.
>
>                 I think this is not possible and I wonder why. Swing was
>                 the same, you
>                 could only listen to keyboard events if the control had
>                 focus. Is this a
>                 technical limitation? If there is no technical
>                 limitation I think it would
>                 be better to remove this restriction, I think it is
>                 limiting and the above
>                 scenario is a good use case to show that.
>
>
>             This is not a technical limitation, it's just the way how
>             it's supposed to work. All the key events are dispatched to
>             the component in focus, this is what input focus is.
>
>             Scenario you described should be easier to implement in FX
>             than in Swing. In AWT/Swing, input events are dispatched to
>             a single component, while FX is much more flexible. All the
>             events are delivered to a Scene first, then dispatched to
>             the focused component (or component under mouse, for mouse
>             events), then bubbled up back to the Scene. What you need is
>             to register a custom event filter for the scene and listen
>             to all the key events.
>
>             See Scene.addEventFilter() and Scene.addEventHandler() for
>             details.
>
>             Thanks,
>
>             Artem
>
>                 Thanks, best regards,
>
>
>
>
> --
> Pedro Duque Vieira


More information about the openjfx-dev mailing list