gpt4 book ai didi

java - JLabel 和 JTextField setText 未更新

转载 作者:行者123 更新时间:2023-12-01 18:21:35 25 4
gpt4 key购买 nike

我想使用 setText() 方法更新 jlabel 和 jtextfield,但它不起作用。但是,其余代码正在运行。代码如下;

btnDosyaSe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

int kullaniciSecimi = jfc.showOpenDialog(null);
if (kullaniciSecimi == JFileChooser.APPROVE_OPTION) {
File fileName = jfc.getSelectedFile();
textField.setText(fileName.getPath());
islemSureci.setText("Veriler Okunuyor...");

try {

ArrayList<ArrayList<String>> tumYazılar = rwd.readTXT(fileName.getPath());
String[] yazarlar = rwd.yazarlar(fileName.getPath());
islemSureci.setText("Veriler Okundu! Öznitelik çıkarımına başlandı...");

oznitelikler = oc.oznitelikleriBul(tumYazılar, yazarlar);
islemSureci.setText("Öznitelikler Çıkarılmıştır!");
//String text = readTXT(fileName);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});

在这里,islemSureci 是 JLabel,textFiled 是 JTextField。当它们被设置时,它不起作用。代码中的所有工作完成后,它们就会出现。请问您能说说是什么原因吗?

最佳答案

您的长时间运行的任务在事件调度程序线程中执行,该线程锁定应执行更新的线程。因此只有在任务完成后才会进行真正的更新。

在 SwingWorker 中运行它

参见例如

http://www.javacreed.com/swing-worker-example/

How do I use SwingWorker in Java?

关于java - JLabel 和 JTextField setText 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604470/

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