Java DefaultListModel修改jList视图

Java DefaultListModel修改jList视图,java,swing,user-interface,jlist,defaultlistmodel,Java,Swing,User Interface,Jlist,Defaultlistmodel,如果我有以下情况 DefaultListModel model = new DefaultListModel(); model.addElement(file1.getName); model.addElement(file2.getName); ... //Add to list myJList.setModel(model); 现在列表将显示我想要的文件名。但是,如果要处理这些文件,则需要实际路径。那么,如果JList仅显示名称,但同时模型已存储完整路径,我将如何实现这一结果 或者,我可

如果我有以下情况

DefaultListModel model = new DefaultListModel();
model.addElement(file1.getName);
model.addElement(file2.getName);
...

//Add to list
myJList.setModel(model);
现在列表将显示我想要的文件名。但是,如果要处理这些文件,则需要实际路径。那么,如果
JList
仅显示名称,但同时模型已存储完整路径,我将如何实现这一结果


或者,我可以完成
…(file1.getAbsolutePath())
,但是jList不会显示正确的数据

您应该使用
DefaultListModel
,然后向模型中添加文件,而不是文件名字符串。您可以通过给JList一个单元渲染器来改变显示的外观,该单元渲染器只显示每个文件的名称

e、 g

fileList.setCellRenderer(新的DefaultListCellRenderer(){
@凌驾
公共组件GetListCellRenderComponent(JList列表,
对象值,整数索引,布尔值为选定值,布尔值为单元格焦点){
if(值!=null){
value=((文件)value).getName();
}
返回super.getListCellRenderComponent(列表、值、索引、isSelected、,
细胞聚焦);
}
});

您应该改为使用
DefaultListModel
,然后向模型中添加文件,而不是文件名字符串。您可以通过给JList一个单元渲染器来改变显示的外观,该单元渲染器只显示每个文件的名称

e、 g

fileList.setCellRenderer(新的DefaultListCellRenderer(){
@凌驾
公共组件GetListCellRenderComponent(JList列表,
对象值,整数索引,布尔值为选定值,布尔值为单元格焦点){
if(值!=null){
value=((文件)value).getName();
}
返回super.getListCellRenderComponent(列表、值、索引、isSelected、,
细胞聚焦);
}
});

您应该改为使用
DefaultListModel
,然后向模型中添加文件,而不是文件名字符串。您可以通过给JList一个单元渲染器来改变显示的外观,该单元渲染器只显示每个文件的名称

e、 g

fileList.setCellRenderer(新的DefaultListCellRenderer(){
@凌驾
公共组件GetListCellRenderComponent(JList列表,
对象值,整数索引,布尔值为选定值,布尔值为单元格焦点){
if(值!=null){
value=((文件)value).getName();
}
返回super.getListCellRenderComponent(列表、值、索引、isSelected、,
细胞聚焦);
}
});

您应该改为使用
DefaultListModel
,然后向模型中添加文件,而不是文件名字符串。您可以通过给JList一个单元渲染器来改变显示的外观,该单元渲染器只显示每个文件的名称

e、 g

fileList.setCellRenderer(新的DefaultListCellRenderer(){
@凌驾
公共组件GetListCellRenderComponent(JList列表,
对象值,整数索引,布尔值为选定值,布尔值为单元格焦点){
if(值!=null){
value=((文件)value).getName();
}
返回super.getListCellRenderComponent(列表、值、索引、isSelected、,
细胞聚焦);
}
});
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);
   }
});