[英]Update JTextFields text every 3 seconds after pressing button
所以我想要做的是,當我按下按鈕時,JTextField文本開始每3秒更新一次新值。 我已經嘗試過Thread sleep metod,但它會凍結整個程序的睡眠時間,並且在文本域結束后獲取最新的輸入。 所以這里有更好的解釋我想要做的例子。
我按下JButton,只要有可用值,它就會每隔3秒將數字放在JTextFiel中。 我不希望它附加新文本,只需用new替換舊文本。 任何人都有想法我怎么能這樣做? 提前致謝。
您應該使用javax.swing.Timer
。
final Timer updater = new Timer(3000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
// update JTextField
}
});
JButton button = new JButton("Click me!");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
updater.start();
}
});
Timer
不會阻止Event Dispatch Thread(就像Thread.sleep
那樣),所以它不會導致程序無響應。
你不能在美國東部時間睡覺。 你可以使用swingworker(更好的解決方案)或做這樣的事情:
//sleep in new thread
new Thread (new Runnable() {
public void run() {
Thread.sleep(3000);
//update UI in EDT
SwingUtilities.invokelater(new Runnable() {
public void run() {updateYourTextHere();}
});
}
}).start();
你需要在一個單獨的線程上完成“工作”。 請參閱此處的一些答案: Java GUI不會更改
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.