我有一個JList組件,我想存儲圖像的路徑,但顯示圖像的名稱,而不是路徑。我有緊急打開文件按鈕那樣的代碼:JList:顯示除存儲的其他東西
public void openButtonActionPerformed() {
int returnVal = fc.showDialog(null, "Open");
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
}
jList1.setCellRenderer(new JavaRenderer());
}
和:
class JavaRenderer extends DefaultListCellRenderer {
public JavaRenderer(){
//setOpaque(true);
}
public File file;
public Component getListCellRendererComponent(JList list,
Object value,
int index,
boolean isSelected,
boolean hasFocus) {
if (value instanceof File) {
File file = (file) value;
return super.getListCellRendererComponent(list, file.getName(), index, isSelected, hasFocus);
}else {
return super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
}
}
}
但它仍然無法正常工作。你能幫助我嗎?
我編輯我的帖子,由於你的線索。它不工作,我知道這個錯誤是愚蠢的,但我找不到它。你能幫助我嗎? – Doszi89
您需要調用'jList1.setCellRenderer(new JavaRenderer());'''''''''''''''''初始化jList的位置。然後,您必須使用listModel將文件添加到jList。請參閱[將項目添加到jList](http://docs.oracle.com/javase/tutorial/uiswing/components/list.html#mutable) – alaster
謝謝,實際上問題出在'File file =(file)value;'因爲我毫不留情地複製它,應該有文件而不是文件。感謝您對初學者的幫助和耐心:) – Doszi89