gpt4 book ai didi

java - 只有最后一次调用 TextField 才会更新它

转载 作者:行者123 更新时间:2023-12-02 07:47:41 24 4
gpt4 key购买 nike

我想在 JTextField 中以注释的形式向用户显示程序流程。仅显示最后一条消息(“完成”)。如何在调用 setText() 时显示每条消息?

private class CalculateButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
String keyValue = keywordTF.getText();
currentTF.setText("calling 1");
methodCall1();
currentTF.setText("calling 2");
methodCall2();
currentTF.setText("calling 3");
methodCall3();
currentTF.setText("complete");
}
}

最佳答案

原因是 EDT 没有时间重新绘制文本字段,因为您的 methodCall* 方法正在 EDT 上运行。

如果您想显示繁重任务的进度,您应该在工作线程上执行繁重工作并在 EDT 上更新 UI。通常,这是通过使用 SwingWorker 或使用工作线程中的 SwingUtilities#invokeLater 来实现的。

'Concurrency in Swing'教程包含更多信息

关于java - 只有最后一次调用 TextField 才会更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604199/

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