gpt4 book ai didi

java - JLabel setText 不更新文本

转载 作者:行者123 更新时间:2023-12-03 17:32:39 26 4
gpt4 key购买 nike

我正在尝试使用 setText() 更新 JLabel方法,但我无法重绘 JLabel。我是否必须使用 repaint()方法来做到这一点?

这是代码的一部分,我没有收到任何错误,但它没有更新 JLabel。

public void actionPerformed(ActionEvent e) {
fc = new JFileChooser();
if(e.getSource() == addButton) {
int returnVal = fc.showOpenDialog(Main.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
filesList = fc.getSelectedFiles();
setFilesList(filesList);

StringBuilder logString = new StringBuilder();
logString.append("Files to Convert " + "\n");
for(int i = 0; i < getFiles().length; i++) {
logString.append(filesList[i].getAbsolutePath());
}
//JLabel log = new JLabel(); created above.
log.setText(logString.toString());
} else {
//log.append("Open command cancelled by user." + newline);
}
//log.setCaretPosition(log.getDocument().getLength());
}
}

最佳答案

JLabel 不需要重绘调用。只需调用 setText(...) 将更改标签的文本,这就是所需的全部内容。

我想知道您的问题是否是并发问题,您是否正在 Swing 事件线程上执行长时间运行的进程,并且这会阻止您的标签更新其文本。

如果是这样,那么请考虑在后台线程(例如 SwingWorker 提供的线程)中执行长时间运行的进程,然后在 Swing 线程上更新 JLabel 的文本,例如可以通过 SwingWorker 的发布/处理方法来完成。

有关更多信息,请查看 Lesson: Concurrency in Swing教程。

此外,Mario De... 无法在 JLabel 上打印简单的换行符是正确的。 1+他的回答。

关于java - JLabel setText 不更新文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132859/

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