<AWT Dev> <Swing Dev> Public RequestFocusController/AWTAccessor API
reto.merz at abacus.ch
Tue Apr 12 11:37:29 UTC 2016
Basically we need to detect and intercept focus changes.
java.awt.Component allows to override this methods:
requestFocus() is only invoked when the component is focused by a mouse click.
But no requestFocus* method is invoked when a FocusTraversalPolicy is involed
(f. e. the user press TAB to focus next component).
sun.awt.RequestFocusController#acceptRequestFocus is invoked in both cases.
Attached a demo to reproduce it:
- if TextField is focused by a mouse click "requestFocus" and "acceptRequestFocus" is logged
- if TextField is focused by TAB only "acceptRequestFocus" is logged
Some more notes about the test program:
ComponentAccessorDelegator delegates all calls to the original ComponentAccessor implementation.
Only ComponentAccessor#setRequestFocusController is changed to keep our RequestFocusController implementation.
I have just filled a RFE on http://bugreport.java.com/bugreport
On 11/04/16 21:02, Alexander Scherbatiy wrote:
> Hello Reto,
> Could you provide use cases which illustrate tasks the requested API is intended to solve in your application?
> Please, also create a request in the bug system http://bugreport.java.com/bugreport
>> On 11/04/16 12:26, Alexander Scherbatiy wrote:
>> Resending the request to awt-dev alias.
>> On 4/4/2016 4:54 PM, Reto Merz wrote:
>>> Jigsaw will disallow access to internal packages.
>>> We have written a complex validation and focus management
>>> implementation for our closed-source RIA and maintain it since JRE
>>> For this we use some internal API. We have a custom implementation of
>>> these interfaces:
>>> And use this getter and setter:
>>> Please make this API public.
>>> Furthermore we need to call
>>> We do this with reflection. It would be nice to have a public API for
>>> Maybe a new static method on AWTAccessor:
>>> Best Regards
>>> Reto Merz
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 7801 bytes
Desc: not available
More information about the awt-dev