Java: 鼠标点击时模拟按键?
Java: simulate keypresses when mouse clicked?
所以,我对编程还很陌生,我喜欢 fiddle 用它,有一天我的朋友让我做一个程序,当你点击时,"ctrl" 和 "s" 将是 "pressed"。我看了很多试图制作功能代码的论坛,但由于我是 Java 的新手,我只得到了单独的代码片段并将它们放在一起。
我的代码如下所示:
import java.awt.event.MouseEvent;
import java.awt.*;
import java.awt.event.*;
import java.awt.Robot;
import java.util.Scanner;
public class MyClass {
public static void main(String args[]) {
Scanner keyboard = new Scanner(System.in);
System.out.println("press any key to exit.");
keyboard.next();
System.exit(0);
}
public void mouseClicked(MouseEvent evt) {
try {
Robot robot = new Robot();
// Simulate a key press
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_CONTROL);
} catch (AWTException e) {
}
}
}
您的程序没有 GUI,因此无法调用您的鼠标侦听器。侦听器中的代码看起来是正确的,您需要做的就是搜索如何创建基本 GUI 并向其添加鼠标侦听器,以便获得所需的结果。
下面的代码可以帮助你处理Ctrl+S
public class SwingApp1 extends JFrame implements KeyListener {
public SwingApp1() {
setSize(500, 500);
setLocationRelativeTo(null);
setBackground(Color.blue);
addKeyListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingApp1 main = new SwingApp1();
main.setVisible(true);
}
@Override
public void keyTyped(KeyEvent evt) {
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Pressed=>" + e.getKeyCode());
if (e.getKeyCode() == 83) {
System.out.println("Pressed Ctrl + S");
} // Ctrl + S
}
@Override
public void keyReleased(KeyEvent e) {
}}
所以,我对编程还很陌生,我喜欢 fiddle 用它,有一天我的朋友让我做一个程序,当你点击时,"ctrl" 和 "s" 将是 "pressed"。我看了很多试图制作功能代码的论坛,但由于我是 Java 的新手,我只得到了单独的代码片段并将它们放在一起。
我的代码如下所示:
import java.awt.event.MouseEvent;
import java.awt.*;
import java.awt.event.*;
import java.awt.Robot;
import java.util.Scanner;
public class MyClass {
public static void main(String args[]) {
Scanner keyboard = new Scanner(System.in);
System.out.println("press any key to exit.");
keyboard.next();
System.exit(0);
}
public void mouseClicked(MouseEvent evt) {
try {
Robot robot = new Robot();
// Simulate a key press
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_CONTROL);
} catch (AWTException e) {
}
}
}
您的程序没有 GUI,因此无法调用您的鼠标侦听器。侦听器中的代码看起来是正确的,您需要做的就是搜索如何创建基本 GUI 并向其添加鼠标侦听器,以便获得所需的结果。
下面的代码可以帮助你处理Ctrl+S
public class SwingApp1 extends JFrame implements KeyListener {
public SwingApp1() {
setSize(500, 500);
setLocationRelativeTo(null);
setBackground(Color.blue);
addKeyListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingApp1 main = new SwingApp1();
main.setVisible(true);
}
@Override
public void keyTyped(KeyEvent evt) {
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Pressed=>" + e.getKeyCode());
if (e.getKeyCode() == 83) {
System.out.println("Pressed Ctrl + S");
} // Ctrl + S
}
@Override
public void keyReleased(KeyEvent e) {
}}