-
Bug
-
Resolution: Fixed
-
P3
-
6u10
-
b61
-
x86
-
windows_xp
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8084671 | emb-9 | Semyon Sadetsky | P3 | Resolved | Fixed | team |
FULL PRODUCT VERSION :
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Client VM (build 14.1-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
Mnemonic disappears after repeated attempts to open menu items using mnemonic key:
Problem:
When you press a sequence of hot keys/ mnemonics, Panels stop displaying the Mnemonics for the menu items.
Sample scenario, press Alt+F, Alt+S (No action in between like mouse click or esc) the Mnemonics letters doesn't get displayed. (chose 'F' & 'S' as sample code below use same mnemonics.
Problem is reproducible only with "SystemLAF", but if we use "Metal/Motif LAF" then we do not have this problem as the menus appear differently.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Sample scenario, press Alt+F, Alt+S (No action in between like mouse click or esc) the Mnemonics letters doesn't get displayed. (chose 'F' & 'S' as sample code below use same )won't get displayed, after the very first time for which mnemonics get displayed.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected Results:
No matter how many ever times the mnemonics/hot keys are tried to access by pressing Alt+F or Alt+(any mnemonic present in menu item),particular mnemonic should get displayed/underlined properly.
ACTUAL -
Actual Result:
Alt+(any mnemonic present in menu item). it should get displayed/underlined every time the operation is performed.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
No error messages logged.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
class MenuActionListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("Selected: " + actionEvent.getActionCommand());
}
}
public class MenuLookDemo {
public static void main(final String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
ActionListener menuListener = new MenuActionListener();
JFrame frame = new JFrame("Menu Look Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
// used to set to Windows LAF
String systemLAF;
systemLAF = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(systemLAF);
// First Menu, F - Mnemonic
JMenu firstMenu = new JMenu("Fisrt Menu");
firstMenu.setMnemonic(KeyEvent.VK_F);
menuBar.add(firstMenu);
// Fisrt Menu - menu items
JMenuItem oneMenuItem = new JMenuItem("One", KeyEvent.VK_O);
oneMenuItem.addActionListener(menuListener);
firstMenu.add(oneMenuItem);
JMenuItem twoMenuItem = new JMenuItem("Two", KeyEvent.VK_T);
twoMenuItem.addActionListener(menuListener);
firstMenu.add(twoMenuItem);
// Second Menu, S - Mnemonic
JMenu secondMenu = new JMenu("Second Menu");
secondMenu.setMnemonic(KeyEvent.VK_S);
menuBar.add(secondMenu);
// Second Menu - menu items
JMenuItem anotherMenuItem = new JMenuItem("Another Menu Item", KeyEvent.VK_A);
anotherMenuItem.addActionListener(menuListener);
secondMenu.add(anotherMenuItem);
frame.setJMenuBar(menuBar);
frame.setSize(350, 250);
frame.setVisible(true);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Workaround:
Disabling Windows Keyboard Navigation checkbox on display setting, will always shows mnemonics. I just tried to disable this option (control panel->display->Appearance->effects-> Hide underlined letters for keyboard Navigation until i press the Alt Key) and mnemonics always appears and able to use it properly.
SUPPORT :
YES
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Client VM (build 14.1-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
Mnemonic disappears after repeated attempts to open menu items using mnemonic key:
Problem:
When you press a sequence of hot keys/ mnemonics, Panels stop displaying the Mnemonics for the menu items.
Sample scenario, press Alt+F, Alt+S (No action in between like mouse click or esc) the Mnemonics letters doesn't get displayed. (chose 'F' & 'S' as sample code below use same mnemonics.
Problem is reproducible only with "SystemLAF", but if we use "Metal/Motif LAF" then we do not have this problem as the menus appear differently.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Sample scenario, press Alt+F, Alt+S (No action in between like mouse click or esc) the Mnemonics letters doesn't get displayed. (chose 'F' & 'S' as sample code below use same )won't get displayed, after the very first time for which mnemonics get displayed.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected Results:
No matter how many ever times the mnemonics/hot keys are tried to access by pressing Alt+F or Alt+(any mnemonic present in menu item),particular mnemonic should get displayed/underlined properly.
ACTUAL -
Actual Result:
Alt+(any mnemonic present in menu item). it should get displayed/underlined every time the operation is performed.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
No error messages logged.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
class MenuActionListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("Selected: " + actionEvent.getActionCommand());
}
}
public class MenuLookDemo {
public static void main(final String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
ActionListener menuListener = new MenuActionListener();
JFrame frame = new JFrame("Menu Look Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
// used to set to Windows LAF
String systemLAF;
systemLAF = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(systemLAF);
// First Menu, F - Mnemonic
JMenu firstMenu = new JMenu("Fisrt Menu");
firstMenu.setMnemonic(KeyEvent.VK_F);
menuBar.add(firstMenu);
// Fisrt Menu - menu items
JMenuItem oneMenuItem = new JMenuItem("One", KeyEvent.VK_O);
oneMenuItem.addActionListener(menuListener);
firstMenu.add(oneMenuItem);
JMenuItem twoMenuItem = new JMenuItem("Two", KeyEvent.VK_T);
twoMenuItem.addActionListener(menuListener);
firstMenu.add(twoMenuItem);
// Second Menu, S - Mnemonic
JMenu secondMenu = new JMenu("Second Menu");
secondMenu.setMnemonic(KeyEvent.VK_S);
menuBar.add(secondMenu);
// Second Menu - menu items
JMenuItem anotherMenuItem = new JMenuItem("Another Menu Item", KeyEvent.VK_A);
anotherMenuItem.addActionListener(menuListener);
secondMenu.add(anotherMenuItem);
frame.setJMenuBar(menuBar);
frame.setSize(350, 250);
frame.setVisible(true);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Workaround:
Disabling Windows Keyboard Navigation checkbox on display setting, will always shows mnemonics. I just tried to disable this option (control panel->display->Appearance->effects-> Hide underlined letters for keyboard Navigation until i press the Alt Key) and mnemonics always appears and able to use it properly.
SUPPORT :
YES
- backported by
-
JDK-8084671 Mnemonic disappears after repeated attempts to open menu items using mnemonics
- Resolved
- relates to
-
JDK-8079428 [TEST_BUG] Test javax/swing/plaf/windows/6921687/bug6921687.java fails
- Resolved