Java: какой класс использовать для автоматического ввода символа по символу строки в текстовой панели / блокноте или на веб-сайте

#java

#java

Вопрос:

Я пытаюсь создать автотип, который будет вводить по одному символу за раз с заданной частотой, но я не знаю, какой класс использовать или как использовать. Я успешно могу распечатать желаемый результат на консоли. Любая помощь будет принята с благодарностью.

Ниже приведены мои коды

 public class autoTyper extends JFrame
{
private JTextField inputArea;
private String msg = "";
private JButton copy;
private JSpinner frequency;
private Timer t;
private int delay;
private int i = 0;

public autoTyper()
{
    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());
    inputArea = new JTextField(30);
    inputArea.setText("Type your text here");

    frequency = new JSpinner(new SpinnerNumberModel(100, 10, 1000, 10));

    copy = new JButton("Start");
    copy.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            delay = Integer.parseInt(frequency.getValue().toString());
            setDelay(delay);

            System.out.println(delay);
            calculate();
            t.start();
        }
    });

    panel.add(inputArea, BorderLayout.NORTH);
    panel.add(frequency, BorderLayout.WEST);
    panel.add(copy, BorderLayout.EAST);

    getContentPane().add(panel);
}

private void calculate()
{
    t = new Timer(getDelay(), new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            msg = inputArea.getText();

            if (i < msg.length()) {
                System.out.print(msg.charAt(i));
                i  ;
            } else
                t.stop();
        }
    });
}

private void setDelay(int delay)
{
    this.delay = delay;
}

private int getDelay()
{
    return delay;
}

public static void main(String[] args)
{
    autoTyper at = new autoTyper();
    at.setTitle("Auto Typer");
    at.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    at.setLocationRelativeTo(null);
    at.pack();
    at.setVisible(true);
}
}