It is seen that using VK_F4 in JButton's setMnemonic(int i), causes the letter 
'S' in the JButton to be underlined if JButton's text has 'S' in its string.
This is because 
[**VK_F4**](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/java/awt/event/KeyEvent.java#L506)
 keycode is 0x73 (115 in decimal) which happens to be value of lowercase 
[**'s'** ](https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html) so 
as per the logic implemented in SwingUtilities.findDisplayedMnemonicIndex(), 
the first index of the character (either lowecasr or uppercase) is returned as 
a mnemonic, which gets underlined.

Fix is made to ignore Action Keys from VK_F1->VK_F11 as displayed mnemonic 
which corresponds to lowercase p->z

-------------

Commit messages:
 - Fix
 - Fix
 - 4850101: Setting mnemonic to VK_F4 underlines the letter S in a button.

Changes: https://git.openjdk.org/jdk/pull/9712/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9712&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-4850101
  Stats: 139 lines in 2 files changed: 139 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/9712.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9712/head:pull/9712

PR: https://git.openjdk.org/jdk/pull/9712

Reply via email to