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