-
Bug
-
Resolution: Unresolved
-
P4
-
None
-
6
-
x86
-
windows_2000, windows_xp
FULL PRODUCT VERSION :
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b91)
Java HotSpot(TM) Client VM (build 1.6.0-rc-b91, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows 2000 [Version 5.00.2195]
EXTRA RELEVANT SYSTEM CONFIGURATION :
swedish keyboard/locale
A DESCRIPTION OF THE PROBLEM :
Pressing the key combination ctrl + 6 procduces an invalid key char.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create a JFrame, add a component, attach a KeyListener, print the event object to System.out.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Pressing ctrl+5 and then ctrl+6 and then ctrl+7 yields this result:
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=53,keyText=5,keyChar='5',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=54,keyText=6,keyChar='6',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=55,keyText=7,keyChar='7',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
ACTUAL -
Pressing ctrl+5 and then ctrl+6 and then ctrl+7 yields this result:
Notice that ctrl+6 has "keyChar=Undefined keyChar"
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=53,keyText=5,keyChar='5',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=54,keyText=6,keyChar=Undefined keyChar,modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=55,keyText=7,keyChar='7',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.event.*;
public class Test
{
public static void main(String ... args)
{
JLabel c = new JLabel("hello world");
c.setFocusable(true);
c.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent aEvent)
{
System.out.println(aEvent);
}
});
JFrame f = new JFrame();
f.add(c);
f.pack();
f.setVisible(true);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use getKeyCode() instead of getKeyChar()
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b91)
Java HotSpot(TM) Client VM (build 1.6.0-rc-b91, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows 2000 [Version 5.00.2195]
EXTRA RELEVANT SYSTEM CONFIGURATION :
swedish keyboard/locale
A DESCRIPTION OF THE PROBLEM :
Pressing the key combination ctrl + 6 procduces an invalid key char.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create a JFrame, add a component, attach a KeyListener, print the event object to System.out.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Pressing ctrl+5 and then ctrl+6 and then ctrl+7 yields this result:
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=53,keyText=5,keyChar='5',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=54,keyText=6,keyChar='6',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=55,keyText=7,keyChar='7',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
ACTUAL -
Pressing ctrl+5 and then ctrl+6 and then ctrl+7 yields this result:
Notice that ctrl+6 has "keyChar=Undefined keyChar"
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=53,keyText=5,keyChar='5',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=54,keyText=6,keyChar=Undefined keyChar,modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=55,keyText=7,keyChar='7',modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_STANDARD]
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.event.*;
public class Test
{
public static void main(String ... args)
{
JLabel c = new JLabel("hello world");
c.setFocusable(true);
c.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent aEvent)
{
System.out.println(aEvent);
}
});
JFrame f = new JFrame();
f.add(c);
f.pack();
f.setVisible(true);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use getKeyCode() instead of getKeyChar()