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

[macosx] keyReleased is not called for Comamnd+any key on MacOSX

XMLWordPrintable

      FULL PRODUCT VERSION :
      java version " 1.7.0_21 "
      Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
      Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Mac OS X 10.7.5

      A DESCRIPTION OF THE PROBLEM :
      keyReleased should be called when we push Command + A and release A. But keyReleased is not called in Java7 on MacOS. We can see the problem with Command+Any key(not only " A " ). When we push Control + A and release A on Windows, keyReleased is called.

      REGRESSION. Last worked in version 6u45

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Run the program in this report
      2. Push Command key
      3. Push A key
      4. Release A key
      5. Check console.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      KeyEvent[KEY_RELEASED] for 'A' should be called.
      ACTUAL -
      KeyEvent[KEY_RELEASED] for 'A' is not called.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.awt.BorderLayout;
      import java.awt.EventQueue;
      import java.awt.event.KeyEvent;
      import java.awt.event.KeyListener;
      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JPanel;
      import javax.swing.border.EmptyBorder;

      public class TestKeyEvent2 extends JFrame implements KeyListener {
      private static final long serialVersionUID = 1L;
      private JPanel contentPane;

      public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
      public void run() {
      try {
      TestKeyEvent2 frame = new TestKeyEvent2();
      frame.setVisible(true);
      } catch (Exception e) {
      e.printStackTrace();
      }
      }
      });
      }

      public TestKeyEvent2() {
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setBounds(100, 100, 450, 300);
      contentPane = new JPanel();
      setContentPane(contentPane);
      this.addKeyListener(this);
      JLabel lblNewLabel = new JLabel( " <html>Push Command + any KEY.<br>Check whether you recieve RELEASED event on console.</html> " );
      contentPane.add(lblNewLabel, BorderLayout.CENTER);
      }

      @Override
      public void keyPressed(KeyEvent e) {
      System.out.println(e);
      }

      @Override
      public void keyReleased(KeyEvent e) {
      System.out.println(e);
      }

      @Override
      public void keyTyped(KeyEvent e) {
      System.out.println(e);
      }
      }

      ---------- END SOURCE ----------

            pchelko Petr Pchelko (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: