例如,我想要一個 JTextfield 用開始、停止和恢復按鈕連續顯示不同的亂數。按下開始按鈕時自動更新 JTextField 的可能解決方案是什么?我嘗試在開始按鈕的動作偵聽器中使用 while 回圈,但它只會使按鈕卡在 while 回圈中。這是我嘗試的代碼的一部分。
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
while(true){
textField.setText(String.valueOf(random.nextInt()));
}
}
});
uj5u.com熱心網友回復:
在 Swing 中讀取并發。
您可以使用 ajavax.swing.Timer來更改JTextField.
一個小例子:
public class TimerExample {
public static void main(String[] args) {
SwingUtilities.invokeLater(()->{
JTextField field = new JTextField(10);
Timer timer = new Timer(100, e->{
field.setText(String.valueOf(Math.random()));
});
timer.start();
JOptionPane.showMessageDialog(null,field);
});
}
}
如果您while(true)在運行 UI 的執行緒中使用(此執行緒稱為 EDT - 事件調度執行緒),則該執行緒將無法處理事件,因為它被卡在while回圈內。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331479.html
上一篇:使用Swing設定3x3網格布局
