Ich kann mich nur dunkel erinnern, aber soweit ich weiß brauchst du einfach nur die toString Methode überschreiben und schon wird das Objekt so angezeigt wie du es gerne hättest.
Vielleicht hilft dir das ja auch weiter:
Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.io.File;
import java.io.FileFilter;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.WindowConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class JListDemo extends JFrame {
private JList list = null;
private DefaultListModel model = null;
public JListDemo() {
super("JList Demo");
guiInit();
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
private void guiInit() {
Container cont = getContentPane();
cont.setLayout(new BorderLayout());
model = new DefaultListModel();
list = new JList(model);
JScrollPane scroller = new JScrollPane();
scroller.getViewport().add(list);
cont.add(scroller, BorderLayout.CENTER);
list.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
ListObject lo = (ListObject) list
.getSelectedValue();
if (lo != null) {
System.out.println(lo.getFile()
.getAbsolutePath());
}
}
}
});
}
public void setListContent(File[] directories) {
FileFilter ff = new FileFilter() {
public boolean accept(File pathname) {
return pathname.isFile();
}
};
for (File dir : directories) {
File[] files = dir.listFiles(ff);
if (files != null) {
for (File f : files) {
ListObject lo = new ListObject();
lo.setFile(f);
model.addElement(lo);
}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
JListDemo listDemo = new JListDemo();
listDemo.setListContent(new File[] { new File("C:/Temp"),
new File("C:/Temp/dir2") });
listDemo.setVisible(true);
}
private class ListObject {
private File file = null;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String toString() {
return file.getName();
}
}
}