吉祥猴378 2024-09-02 21:48 采纳率: 95.8%
浏览 2

哪位大姥,知道Java如何按下f键后自动按下c键和g键

    try {
        robot = new Robot();
    } catch (AWTException e) {
        e.printStackTrace();
        return;
    }

 
    Frame frame = new Frame();
    frame.setSize(1, 1);
    frame.setVisible(true);
    frame.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_F) {
                // 模拟按下 C 键
                robot.keyPress(KeyEvent.VK_C);
                robot.keyRelease(KeyEvent.VK_C);
                // 模拟按下 G 键
                robot.keyPress(KeyEvent.VK_G);
                robot.keyRelease(KeyEvent.VK_G);
            }
        }
    });

    // 使程序保持运行,直到用户关闭窗口
    frame.addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(java.awt.event.WindowEvent windowEvent) {
            frame.dispose();
            System.exit(0);
        }
    });

    try {
        java.awt.EventQueue.invokeAndWait(() -> {
            while (true) {
                try {
                    Thread.sleep(100); // 减少 CPU 占用
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
        });
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

}

  • 写回答

1条回答 默认 最新

  • 阿尔法星球 阿尔法星球CSDN官方账号 2024-09-03 08:57
    关注
    import java.awt.*;
    import java.awt.event.*;
    
    public class KeySimulator {
        public static void main(String[] args) {
            Robot robot = null;
            try {
                robot = new Robot();
            } catch (AWTException e) {
                e.printStackTrace();
                return;
            }
    
            Frame frame = new Frame();
            frame.setSize(1, 1);
            frame.setUndecorated(true); // 可以设置为无边框窗口
            frame.setVisible(true);
            frame.addKeyListener(new KeyAdapter() {
                @Override
                public void keyPressed(KeyEvent e) {
                    if (e.getKeyCode() == KeyEvent.VK_F) {
                        // 模拟按下 C 键
                        robot.keyPress(KeyEvent.VK_C);
                        robot.keyRelease(KeyEvent.VK_C);
                        // 模拟按下 G 键
                        robot.keyPress(KeyEvent.VK_G);
                        robot.keyRelease(KeyEvent.VK_G);
                    }
                }
            });
    
            // 使程序保持运行,直到用户关闭窗口
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent windowEvent) {
                    frame.dispose();
                    System.exit(0);
                }
            });
    
            // 保持窗口运行
            while (true) {
                try {
                    Thread.sleep(100); // 减少 CPU 占用
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
    
    ```java
    
    
    

    ```

    评论

报告相同问题?

问题事件

  • 创建了问题 9月2日