我有一個簡單的熱鍵程序的Linux。現在,當程序被突出顯示時,它的功能完美,但是當我點擊另一個應用程序時,程序沒有響應。是否有一種方法即使在後臺運行時也總是響應程序?Java如何讓非突出顯示的程序響應熱鍵
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ahkkeys extends JFrame {
\t /**
\t \t *
\t \t */
\t private static final long serialVersionUID = 7564262221986249595L;
\t /**
\t \t *
\t \t */
\t Robot r;
\t public ahkkeys() {
\t \t createAndShowGUI();
\t }
\t private void createAndShowGUI() {
\t \t setTitle("Move Cursor with Keyboard");
\t \t setDefaultCloseOperation(EXIT_ON_CLOSE);
\t \t // hide the visibility
\t \t setUndecorated(true);
\t \t setOpacity(1);
\t \t setVisible(true);
\t \t // Create Robot object
\t \t try {
\t \t \t r = new Robot();
\t \t } catch (Exception e) {
\t \t }
\t \t addKeyListener(new KeyAdapter() {
\t \t \t public void keyPressed(KeyEvent e) {
\t \t \t \t if (r == null)
\t \t \t \t \t return;
\t \t \t \t Point p = MouseInfo.getPointerInfo().getLocation();
\t \t \t \t switch (e.getKeyCode()) {
\t \t \t \t // 2::Click right
\t \t \t \t case KeyEvent.VK_2:
\t \t \t \t \t r.mousePress(MouseEvent.BUTTON3_MASK);
\t \t \t \t \t r.mouseRelease(MouseEvent.BUTTON3_MASK);
break;
\t \t \t \t \t // move down
\t \t \t \t case KeyEvent.VK_3:
\t \t \t \t \t r.mouseMove(p.x, p.y + 55);
break;
\t \t \t \t // left click
\t \t \t \t case KeyEvent.VK_4:
\t \t \t \t \t r.mousePress(MouseEvent.BUTTON1_MASK);
\t \t \t \t \t r.mouseRelease(MouseEvent.BUTTON1_MASK);
\t \t \t \t }
\t \t \t }
\t \t });
\t }
\t public static void main(String args[]) {
\t \t new ahkkeys();
\t }
}