Die native Java-API unterstützt das Festlegen globaler Hotkeys für Anwendungen nicht. Um globale Hotkeys zu implementieren, müssen Sie JNI verwenden. Dazu gehört das Schreiben von C/C++-Code, was für die meisten Javaner, die mit C/C++ nicht vertraut sind, etwas schwierig ist. Glücklicherweise hat es jemand im Ausland bereits implementiert und als Java-Paket eines Drittanbieters veröffentlicht. Damit können wir problemlos globale Hotkeys festlegen, ohne C/C++-Code schreiben zu müssen.
Es scheint, dass die offizielle Website von Jintellitype derzeit nicht zugänglich ist: //www.VeVB.COm/softs/217788.html.
Jintellitype besteht aus zwei Teilen, einem ist die in Java geschriebene Jintellityp-JAR-Datei und der andere ist die in C/C++ geschriebene kompilierte DLL-Datei. Es gibt zwei DLL-Dateien, eine für 32-Bit- und eine für 64-Bit-Systeme. Bei der Verwendung von Jintellitype wusste ich nach dem Erstellen der Jintellitype-JAR-Datei nicht, wo ich die DLL-Datei ablegen sollte. Laut Fehlermeldung stellte sich heraus, dass die DLL-Datei ausgeführt werden musste unter dem Projektpaket com.melloware.jintellitype platziert werden. Es wird empfohlen, beide DLL-Dateien gleichzeitig hinzuzufügen, damit Ihr Programm sowohl mit 32-Bit- als auch mit 64-Bit-Systemen kompatibel ist und Sie keine zusätzliche Verarbeitung benötigen.
Fügen Sie meinen kleinen Democode ein:
Paket com.jebysun.globlehotkey; java.awt.event.ActionEvent importieren; javax.swing.JFrame importieren; .JOptionPane; import com.melloware.jintellitype.HotkeyListener; com.melloware.jintellitype.JIntellitype; /** * Verwenden Sie JIntellitype, um globale Hotkey-Einstellungen zu implementieren* @author Jeby Sun * */ public class GlobleHotKeyDemo erweitert JFrame { private static final long serialVersionUID = 1L; // Definieren Sie die Hotkey-Identifikation für das Festlegen mehrerer Hotkeys, unterscheiden die vom Benutzer gedrückten Hotkeys bei der Ereignisbehandlung public static final int FUNC_KEY_MARK = 1; EXIT_KEY_MARK = 0; JButton exitBtn; public GlobleHotKeyDemo() { this.setBounds(100, 100, 600, 400); JFrame.EXIT_ON_CLOSE); msgBtn = new JButton("Pop-up-Box (Alt+S)"); //Button-Ränder festlegen msgBtn.setMargin(new Insets(0,0,0,0)); msgBtn.setBounds ( 20, 20, 120, 30); msgBtn.addActionListener(new ActionListener()) { @Override public void actionPerformed(ActionEvent e) { showMessage(); exitBtn = new JButton("Exit(Alt+Q)"); 0,0,0)); exitBtn.setFocusable(false); 120, 30); exitBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); //Schritt 1: Registrieren Sie den Hotkey. Der zweite Parameter stellt die Tastenkombination dar. Wenn nicht, ist er 0. Der dritte Parameter ist der definierte Haupt-Hotkey (FUNC_KEY_MARK, JIntellitype.MOD_ALT, (int)'S'); JIntellitype.getInstance().registerHotKey(EXIT_KEY_MARK, JIntellitype.MOD_ALT, (int)'Q'); //Schritt 2: Einen Hotkey-Listener hinzufügen JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() { @Override public void onHotKey(int markCode) { switch (markCode) { case FUNC_KEY_MARK: showMessage(); case EXIT_KEY_MARK: System.exit(0); } } }); this.setVisible(true); } public void showMessage() { JOptionPane.showMessageDialog(null, „Auch wenn Sie das Fenster minimieren, drücken Sie die Tastenkombination Alt+S, um das Eingabeaufforderungsfeld aufzurufen! ", "Pop-up-Box-Titel", JOptionPane.INFORMATION_MESSAGE); } public static void main(String[] args) { new GlobleHotKeyDemo(); } }
Tatsächlich ist die Verwendung von Jintellitype sehr einfach, nur drei Schritte:
Schritt 1: JAR-Pakete und DLL-Dateien hinzufügen;
Schritt 2: Hotkeys registrieren;
Schritt 3: Fügen Sie einen Hotkey-Listener hinzu und implementieren Sie die Schnittstellenmethode.