首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DefaultListModel修改jList视图

DefaultListModel修改jList视图
EN

Stack Overflow用户
提问于 2014-04-04 08:24:40
回答 1查看 246关注 0票数 0

如果我有以下场景

代码语言:javascript
复制
DefaultListModel model = new DefaultListModel();
model.addElement(file1.getName);
model.addElement(file2.getName);
...

//Add to list
myJList.setModel(model);

现在列表显然会显示我想要的文件名。但是,如果我要处理这些文件,那么我需要实际的路径。那么,当JList只显示名称,但同时模型存储了完整路径时,我该如何实现这个结果呢?

或者,我也可以执行...(file1.getAbsolutePath())操作,但这样jList就不能显示正确的数据

EN

回答 1

Stack Overflow用户

发布于 2014-04-04 08:27:03

相反,您应该使用DefaultListModel<File>,然后将文件添加到模型中,而不是添加文件名字符串。你可以通过给JList一个单元格渲染器,让它只显示每个文件的名称来改变显示效果。

例如,

代码语言:javascript
复制
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);
   }
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22851358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档