gpt4 book ai didi

java - 在其他操作完成之前,图形文本不会更新

转载 作者:行者123 更新时间:2023-11-29 10:12:00 25 4
gpt4 key购买 nike

我有一个 JButton,它在单击时执行一个操作。在 actionPerformed 中,我想在调用包含大量计算的 NotifyObserver 之前更新按钮文本。问题是在 NotifyObserver 调用的所有操作完成之前,按钮文本不会更新。这是 JButton 操作代码:

//Action for sinoButton
sinoButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
sinoButton.setText("Loading Sinogram"); //Set text while loading sinogram
NotifyObserversSinogram(); //Notify observer and start sinogram calculation
}
});

如您所见,按钮文本应该在通知观察者之前更新。关于如何解决这个问题的任何想法?

最佳答案

如果 NotifyObserversSinogram() 不进行特定于 Swing 的计算,只需将其放在另一个线程中:

 public void actionPerformed(ActionEvent e) {
sinoButton.setText("Loading Sinogram");
new Thread() {
public void run(){
NotifyObserversSinogram();
}
}.start();
}

如果是,请参阅 SwingWorker .

关于java - 在其他操作完成之前,图形文本不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29918639/

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