Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6452020

Swedish keyboard/locale: Ctrl+6 undefined keychar

XMLWordPrintable

    • 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()

            yan Yuri Nesterenko
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Imported:
              Indexed: