La API nativa de Java no admite la configuración de teclas de acceso rápido globales para aplicaciones. Para implementar teclas de acceso rápido globales, debe usar JNI, que implica escribir código C/C++, lo cual es un poco difícil para la mayoría de los javaers que no están familiarizados con C/C++. Afortunadamente, alguien en el extranjero ya lo implementó y lo publicó como un paquete Java de terceros. Con esto, podemos configurar fácilmente teclas de acceso rápido globales sin escribir ningún código C/C++.
Parece que el sitio web oficial de jintellitype actualmente no está disponible. La descarga está disponible aquí: //www.VeVB.COm/softs/217788.html.
Jintellitype consta de dos partes, una es el archivo jar jintellityp escrito en Java y la otra es el archivo dll compilado escrito en C/C++. Hay dos archivos dll, uno para sistemas de 32 bits y 64 bits. En el proceso de uso de jintellitype, después de crear el archivo jar de jintellitype en el proyecto, no sabía dónde colocar el archivo dll. Intenté ejecutarlo, pero resultó que el archivo dll necesitaba ser ejecutado. colocarse bajo el paquete del proyecto com.melloware.jintellitype. Se recomienda agregar ambos archivos dll al mismo tiempo, para que su programa pueda ser compatible con sistemas de 32 y 64 bits y no necesite ningún procesamiento adicional.
Pegue mi pequeño código de demostración:
paquete com.jebysun.globlehotkey; importar java.awt.Insets; importar java.awt.event.ActionEvent; importar java.awt.event.ActionListener; importar javax.swing.JButton; .JOptionPane; importar com.melloware.jintellitype.HotkeyListener; com.melloware.jintellitype.JIntellitype; /** * Utilice JIntellitype para implementar la configuración global de teclas de acceso rápido* @author Jeby Sun * */ public class GlobleHotKeyDemo extends JFrame { private static final long serialVersionUID = 1L; teclas de acceso rápido, distingue las teclas de acceso rápido presionadas por el usuario en el manejo de eventos public static final int FUNC_KEY_MARK = 1 public static final int; EXIT_KEY_MARK = 0; JButton msgBtn; this.setBounds(100, 100, 600, 400); JFrame.EXIT_ON_CLOSE); msgBtn = new JButton("Cuadro emergente (Alt+S)"); //Establecer márgenes del botón msgBtn.setMargin(new Insets(0,0,0,0)); ( 20, 20, 120, 30) msgBtn.addActionListener (nuevo ActionListener()); { @Override public void actionPerformed(ActionEvent e) { showMessage(); } }); this.add(msgBtn); exitBtn = new JButton("Salir (Alt+Q)"); 0,0,0)); salidaBtn.setFocusable(falso); salidaBtn.setBounds(160, 20, 120, 30); exitBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); // Paso 1: Registre la tecla de acceso rápido. El primer parámetro representa la identificación de la tecla de acceso rápido. El segundo parámetro representa la combinación de teclas. Si no, es 0. El tercer parámetro es la tecla de acceso rápido principal definida. (FUNC_KEY_MARK, JIntellitype.MOD_ALT, (int)'S'); JIntellitype.getInstance().registerHotKey(EXIT_KEY_MARK, JIntellitype.MOD_ALT, (int)'Q'); //Paso 2: Agregar un detector de teclas de acceso rápido JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() { @Override public void onHotKey(int markCode) { switch (markCode) { case FUNC_KEY_MARK: showMessage(); romper; caso EXIT_KEY_MARK: System.exit(0); } } }); this.setVisible(true); } public void showMessage() { JOptionPane.showMessageDialog(null, "Incluso si minimiza la ventana, presione la tecla de acceso directo Alt+S para que aparezca el cuadro de aviso. ", "Título del cuadro emergente", JOptionPane.INFORMATION_MESSAGE); } public static void main(String[] args) { new GlobleHotKeyDemo(); } }
De hecho, usar jintellitype es muy sencillo, solo 3 pasos:
Paso 1: agregue paquetes jar y archivos dll;
Paso 2: Registre las teclas de acceso rápido;
Paso 3: agregue un detector de teclas de acceso rápido e implemente el método de interfaz;