gpt4 book ai didi

java - 如何在一个文本区域中在另一个文本区域中按下的每个字母/键之间获得 2 秒的打印延迟?

转载 作者:行者123 更新时间:2023-12-01 20:15:02 25 4
gpt4 key购买 nike

我试图在一个文本区域中输入的每个字母之间添加 2 秒的延迟,然后再将其打印/显示在另一个文本区域上。

我使用了两个类:

  • 一个用于名为 Printdelay 的 GUI
  • 一个用于线程,称为 TwoSecondDelay

除了线程的执行之外,一切正常。

这是 GUI 的代码:

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;


public class PrintDelay extends javax.swing.JFrame implements KeyListener{

int name;

JTextArea server = new JTextArea (10, 20);
JTextArea client = new JTextArea (10, 20);


public PrintDelay () {

super ("Typing...");

setSize (650, 220);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel ();

server.addKeyListener (this);

panel.add (server);
panel.add (client);
add(panel);

setVisible (true);

}

public static void main (String... args) {

new PrintDelay ();

}


@Override
public void keyTyped(KeyEvent e)
{

}

@Override
public void keyPressed(KeyEvent e)
{

}

@Override
public void keyReleased(KeyEvent e)
{
new TwoSecondDelay (Integer.toString(name));
name++;
client.setText(server.getText());
}

}

这是 TwoSecondDelay 的代码:

public class TwoSecondDelay implements Runnable{

String name;
Thread t;

TwoSecondDelay (String threadname) {

name = threadname;
t = new Thread (this, name);
t.start();

}


@Override
public void run() {

try {
Thread.sleep(2000);
}
catch (InterruptedException e) {

}

}

}

这些类也位于它们自己的单独文件中。

最佳答案

不需要使用TwoSecondDelay

@Override
public void keyReleased(KeyEvent e)
{
typeText();
/*new TwoSecondDelay (Integer.toString(name));
name++;
client.setText(server.getText());*/

}

public void typeText(){
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent event){
client.setText(server.getText());
}
};
Timer timer = new Timer(2000, listener);
timer.setRepeats(false);
timer.start();
}

关于java - 如何在一个文本区域中在另一个文本区域中按下的每个字母/键之间获得 2 秒的打印延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com