我想通过使用setText()方法更新JLabel。但我无法重绘JLabel。我必须使用repaint()方法来做到这一点吗?我搜索了每个论坛,但我找不到解决方案。JLabel setText不起作用
这是代码的一部分。我没有得到任何错误,但它没有更新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无法显示换行符。用包装它并使用
标签。 – MarioDS 2012-04-12 22:40:37
您确定在将* log添加到布局管理器之后,您没有将'log'变量重新初始化为新的'JLabel'实例? – Danish 2012-04-12 22:45:10
是的,实际上我用构造函数初始化它。 – Isuru 2012-04-12 22:50:12