3 import java.awt.Toolkit;
4 import java.awt.event.MouseEvent;
7 * retrieve KeyEvent masks for Java 8 or Java 11+
12 public class ShortcutKeyMaskExWrapper
14 public static final int SHIFT_DOWN_MASK;
16 public static final int ALT_DOWN_MASK;
18 public static final int SHORTCUT_MASK;
22 float specversion = 1.8f;
26 .parseFloat(System.getProperty("java.specification.version"));
29 System.out.println("Shortcut exception: " + e);
33 // BH technically, these are not masks; they are bits.
34 if (specversion >= 11)
36 SHIFT_DOWN_MASK = 0x040; // KeyEvent.SHIFT_DOWN_MASK;
37 ALT_DOWN_MASK = 0x200; // KeyEvent.ALT_DOWN_MASK;
38 method = "getMenuShortcutKeyMaskEx";
42 SHIFT_DOWN_MASK = 0x01; // KeyEvent.SHIFT_MASK;
43 ALT_DOWN_MASK = 0x08; // KeyEvent.ALT_MASK;
44 method = "getMenuShortcutKeyMask";
50 // Just use reflection -- doesn't matter what version is running.
51 Toolkit tk = Toolkit.getDefaultToolkit();
52 mask = (int) (tk.getClass().getMethod(method, new Class<?>[0])
53 .invoke(tk, new Object[0]));
56 System.out.println("Shortcut exception: " + e);
62 // BH Q: Why not just use the public static field?
63 public static int getMenuShortcutKeyMaskEx()
68 // BH Q: Why is this here?
69 public static int getModifiersEx(MouseEvent e)
71 return e.getModifiersEx();