如果我有以下场景
DefaultListModel model = new DefaultListModel();
model.addElement(file1.getName);
model.addElement(file2.getName);
...
//Add to list
myJList.setModel(model);现在列表显然会显示我想要的文件名。但是,如果我要处理这些文件,那么我需要实际的路径。那么,当JList只显示名称,但同时模型存储了完整路径时,我该如何实现这个结果呢?
或者,我也可以执行...(file1.getAbsolutePath())操作,但这样jList就不能显示正确的数据
发布于 2014-04-04 08:27:03
相反,您应该使用DefaultListModel<File>,然后将文件添加到模型中,而不是添加文件名字符串。你可以通过给JList一个单元格渲染器,让它只显示每个文件的名称来改变显示效果。
例如,
fileList.setCellRenderer(new DefaultListCellRenderer(){
@Override
public Component getListCellRendererComponent(JList<?> list,
Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (value != null) {
value = ((File)value).getName();
}
return super.getListCellRendererComponent(list, value, index, isSelected,
cellHasFocus);
}
});https://stackoverflow.com/questions/22851358
复制相似问题