Java 如何键入用户光标所在的位置

Java 如何键入用户光标所在的位置,java,Java,我想创建一个应用程序,在运行时,在用户当前输入光标的位置键入文本。如何检查a)用户当前正在选择文本框/程序实际上可以在该点输入,以及b)如何作为用户输入。如果用户选择文本字段时需要设置文本,则需要使用focusgound和focusLost事件查看文本字段何时被选择(获得焦点),或取消选择(失去焦点) 举个例子, import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.J

我想创建一个应用程序,在运行时,在用户当前输入光标的位置键入文本。如何检查a)用户当前正在选择文本框/程序实际上可以在该点输入,以及b)如何作为用户输入。

如果用户选择文本字段时需要设置文本,则需要使用
focusgound
focusLost
事件查看文本字段何时被选择(获得焦点),或取消选择(失去焦点)

举个例子,

import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.JTextField;

public class Main {

    public static void main(String args[]) {
        final JTextField textField = new JTextField();

        textField.addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent e) {
                // Your code here
                textField.setText("Sample Text");
            }

            @Override
            public void focusLost(FocusEvent e) {
                // Your code here
                textField.setText("");
            }
        });
    }
}
或者,您可以使用Java类键入如下内容:

import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.JTextField;

import java.awt.Robot; 
import java.awt.event.KeyEvent; 

public class Main {

    public static void main(String args[]) {
        // Create an instance of Robot class 
        Robot robot = new Robot();

        final JTextField textField = new JTextField();

        textField.addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent e) {
                // Your code here
                // Press keys using robot. A gap of 
                // of 500 mili seconds is added after 
                // every key press 
                robot.keyPress(KeyEvent.VK_H); 
                Thread.sleep(500); 
                robot.keyPress(KeyEvent.VK_E); 
                Thread.sleep(500); 
                robot.keyPress(KeyEvent.VK_L); 
                Thread.sleep(500); 
                robot.keyPress(KeyEvent.VK_L); 
                Thread.sleep(500); 
                robot.keyPress(KeyEvent.VK_O);
            }

            @Override
            public void focusLost(FocusEvent e) {
                // Your code here
                textField.setText("");
            }
        });
    }
}

你到底需要做什么?你的问题还不清楚。我基本上只需要以用户的身份键入。换句话说,代表用户键入。如果选择了文本字段,需要自动键入文本吗?有点。我希望程序只需键入文本,就像按键盘上的键一样。我现在忽略a部分;我只需要它不管效果如何,也不管文本是否真的出现或其他什么,都可以输入文本。如果需要,请检查我的答案。或者如果需要一个字符一个字符地键入,比如显示键入的内容,可以使用Java类