< prev index next >

src/java.desktop/share/classes/javax/swing/KeyStroke.java

Print this page

        

@@ -24,10 +24,11 @@
  */
 package javax.swing;
 
 import java.awt.AWTKeyStroke;
 import java.awt.event.KeyEvent;
+import sun.swing.SwingAccessor;
 
 /**
  * A KeyStroke represents a key action on the keyboard, or equivalent input
  * device. KeyStrokes can correspond to only a press or release of a particular
  * key, just as KEY_PRESSED and KEY_RELEASED KeyEvents do; alternately, they

@@ -68,10 +69,20 @@
     /**
      * Serial Version ID.
      */
     private static final long serialVersionUID = -9060180771037902530L;
 
+    static {
+        SwingAccessor.setKeyStrokeAccessor(new SwingAccessor.KeyStrokeAccessor() {
+
+            @Override
+            public KeyStroke create() {
+                return new KeyStroke();
+            }
+        });
+    }
+
     private KeyStroke() {
     }
     private KeyStroke(char keyChar, int keyCode, int modifiers,
                       boolean onKeyRelease) {
         super(keyChar, keyCode, modifiers, onKeyRelease);

@@ -85,11 +96,10 @@
      * @param keyChar the character value for a keyboard key
      * @return a KeyStroke object for that key
      */
     public static KeyStroke getKeyStroke(char keyChar) {
         synchronized (AWTKeyStroke.class) {
-            registerSubclass(KeyStroke.class);
             return (KeyStroke)getAWTKeyStroke(keyChar);
         }
     }
 
     /**

@@ -146,11 +156,10 @@
      * @see java.awt.event.InputEvent
      * @since 1.3
      */
     public static KeyStroke getKeyStroke(Character keyChar, int modifiers) {
         synchronized (AWTKeyStroke.class) {
-            registerSubclass(KeyStroke.class);
             return (KeyStroke)getAWTKeyStroke(keyChar, modifiers);
         }
     }
 
     /**

@@ -197,11 +206,10 @@
      * @see java.awt.event.InputEvent
      */
     public static KeyStroke getKeyStroke(int keyCode, int modifiers,
                                          boolean onKeyRelease) {
         synchronized (AWTKeyStroke.class) {
-            registerSubclass(KeyStroke.class);
             return (KeyStroke)getAWTKeyStroke(keyCode, modifiers,
                                               onKeyRelease);
         }
     }
 

@@ -245,11 +253,10 @@
      * @see java.awt.event.KeyEvent
      * @see java.awt.event.InputEvent
      */
     public static KeyStroke getKeyStroke(int keyCode, int modifiers) {
         synchronized (AWTKeyStroke.class) {
-            registerSubclass(KeyStroke.class);
             return (KeyStroke)getAWTKeyStroke(keyCode, modifiers);
         }
     }
 
     /**

@@ -264,11 +271,10 @@
      * @throws NullPointerException if <code>anEvent</code> is null
      * @return the KeyStroke that precipitated the event
      */
     public static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent) {
         synchronized (AWTKeyStroke.class) {
-            registerSubclass(KeyStroke.class);
             return (KeyStroke)getAWTKeyStrokeForEvent(anEvent);
         }
     }
 
     /**

@@ -305,11 +311,10 @@
     public static KeyStroke getKeyStroke(String s) {
         if (s == null || s.length() == 0) {
             return null;
         }
         synchronized (AWTKeyStroke.class) {
-            registerSubclass(KeyStroke.class);
             try {
                 return (KeyStroke)getAWTKeyStroke(s);
             } catch (IllegalArgumentException e) {
                 return null;
             }
< prev index next >