我想通過使用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