Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6827786
Votes 0
Synopsis Mnemonic cycling for multiple equal mnemonic armed menu items stops when encountering a submenu
Category java:classes_swing
Reported Against
Release Fixed 7(b74), 6u16-rev(b02) (Bug ID:2176543) , 6u18(b03) (Bug ID:2183404)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs
Submit Date 08-APR-2009
Description
We have seen an unexpected behavior with a Swing GUI.

When there are multiple menu items with the same mnemonic, the user can press the mnemonic key repeatedly to cycle through these items. However, if one of those items is a submenu, once that menu becomes armed, the cycling stops - pressing the mnemonic key again does not move to the next command. This breaks accessibility of software, as users cannot use mnemnoics to access menu items below the submenu.

The issue is OS independent, it occurs on Windows, Linux, Solaris and even Mac OS X.
The customer uses Java 6u7, but it is also reproducible with Java 6u12 and 5u18 for example.

A testcase is available, it is attached to this report (MenuDemo.tar).

Extract the tarball and simply run

$ java -cp . MenuDemo
(the bytecode has been complied with JDK 5u18, source code is in the same folder)

Click on one of the menus and press "j" repeatedly.
In the first menu, the armed item cycles. In the second menu it gets stuck on the submenu.
Posted Date : 2009-04-08 13:22:17.0
Work Around
N/A
Evaluation
It seems a key press gets processed twice. First, BasicMenuKeyListener.menuKeyPressed() properly selects the next item with the corresponding mnemonic. Second, BasicMenuUI.Handler.menuKeyTyped() opens a submenu that has that same mnemonic.

The code in BasicMenuUI.Handler.menuKeyTyped() duplicates BasicMenuKeyListener.menuKeyTyped() and should be removed.
Posted Date : 2009-09-09 13:36:31.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang