作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在一个文本区域中输入的每个字母之间添加 2 秒的延迟,然后再将其打印/显示在另一个文本区域上。
我使用了两个类:
除了线程的执行之外,一切正常。
这是 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/
我是一名优秀的程序员,十分优秀!