API asli Java tidak mendukung pengaturan hotkey global untuk aplikasi. Untuk mengimplementasikan hotkey global, Anda perlu menggunakan JNI, yang melibatkan penulisan kode C/C++, yang agak sulit bagi sebagian besar javaer yang tidak terbiasa dengan C/C++. Untungnya, seseorang di luar negeri telah mengimplementasikannya dan menerbitkannya sebagai paket java pihak ketiga. Dengan ini, kita dapat dengan mudah mengatur hotkey global tanpa menulis kode C/C++ apa pun.
Tampaknya situs resmi jintellitype saat ini tidak dapat diakses. Unduhan tersedia di sini: //www.VeVB.COm/softs/217788.html.
Jintellitype terdiri dari dua bagian, satu adalah file jar jintellityp yang ditulis dalam Java, dan yang lainnya adalah file dll yang dikompilasi yang ditulis dalam C/C++. Ada dua file dll, satu untuk sistem 32-bit dan 64-bit. Dalam proses penggunaan jintellitype, setelah membangun file jar jintellitype ke dalam proyek, saya tidak tahu harus meletakkan file dll di mana. Saya mencoba menjalankannya. Sesuai dengan pesan error, ternyata file dll tersebut diperlukan ditempatkan di bawah paket proyek com.melloware.jintellitype. Disarankan untuk menambahkan kedua file dll secara bersamaan, sehingga program Anda dapat kompatibel dengan sistem 32-bit dan 64-bit, dan Anda tidak memerlukan pemrosesan tambahan apa pun.
Rekatkan kode demo kecil saya:
paket com.jebysun.globlehotkey; impor java.awt.Insets; impor java.awt.event.ActionEvent; impor java.awt.event.ActionListener; .JOptionPane; impor com.melloware.jintellitype.HotkeyListener; com.melloware.jintellitype.JIntellitype; /** * Gunakan JIntellitype untuk mengimplementasikan pengaturan hotkey global* @author Jeby Sun * */ public class GlobleHotKeyDemo extends JFrame { private static final long serialVersionUID = 1L; //Tentukan identifikasi hotkey untuk Saat mengatur beberapa hotkeys, membedakan hotkey yang ditekan oleh pengguna dalam menangani event public static final int FUNC_KEY_MARK = 1; EXIT_KEY_MARK = 0; JButton msgBtn; JButton exitBtn; publik GlobleHotKeyDemo() { this.setTitle("Pengaturan tombol pintas global"); this.setBounds(100, 100, 600, 400); JFrame.EXIT_ON_CLOSE); msgBtn = new JButton("Kotak pop-up (Alt+S)"); //Setel margin tombol msgBtn.setMargin(new Insets(0,0,0,0)); ( 20, 20, 120, 30); msgBtn.addActionListener(ActionListener baru()) { @Override public void actionPerformed(ActionEvent e) { showMessage() } }); this.add(msgBtn); exitBtn = new JButton("Keluar (Alt+Q)"); 0,0,0)); keluarBtn.setFocusable(salah); keluarBtn.setBounds(160, 20, 120, 30); exitBtn.addActionListener(ActionListener baru() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); //Langkah 1: Daftarkan hotkey. Parameter pertama mewakili identifikasi hotkey. Parameter kedua mewakili kombinasi kunci. Jika tidak, maka nilainya adalah 0. Parameter ketiga adalah hotkey utama yang ditentukan (FUNC_KEY_MARK, JIntellitype.MOD_ALT, (int)'S'); JIntellitype.getInstance().registerHotKey(EXIT_KEY_MARK, JIntellitype.MOD_ALT, (int)'Q'); //Langkah 2: Tambahkan pendengar hotkey JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() { @Override public void onHotKey(int markCode) { switch (markCode) { case FUNC_KEY_MARK: showMessage(); istirahat; kasus EXIT_KEY_MARK: Sistem.exit(0); } } }); this.setVisible(true); } public void showMessage() { JOptionPane.showMessageDialog(null, "Bahkan jika Anda memperkecil jendela, tekan tombol pintasan Alt+S untuk memunculkan kotak prompt! ", "Judul kotak pop-up", JOptionPane.INFORMATION_MESSAGE); } public static void main(String[] args) { new GlobleHotKeyDemo(); } }
Sebenarnya cara menggunakan jintellitype sangat sederhana, hanya 3 langkah saja:
Langkah 1: Tambahkan paket jar dan file dll;
Langkah 2: Daftarkan hotkey;
Langkah 3: Tambahkan pendengar hotkey dan terapkan metode antarmuka;