【问题标题】:DefaultListModel modify jList viewDefaultListModel 修改 jList 视图
【发布时间】:2014-04-04 00:24:40
【问题描述】:

如果我有以下情况

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

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

现在列表显然会显示我想要的文件名。但是,如果我要处理这些文件,我将需要实际路径。那么在JList 仅显示名称但同时模型存储完整路径的情况下,我将如何实现此结果?

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

【问题讨论】:

    标签: java swing user-interface jlist defaultlistmodel


    【解决方案1】:

    您应该改为使用 DefaultListModel<File>,然后将 Files 添加到模型中,而不是文件名字符串。您可以通过为 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);
       }
    });
    

    【讨论】:

      猜你喜欢
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      相关资源
      最近更新 更多