【问题标题】:Display Simple Name of File Object in JList在 JList 中显示文件对象的简单名称
【发布时间】:2018-10-31 19:33:41
【问题描述】:

当我将文件对象添加到用于创建 JList 的 DefaultListModel 中时,使用model.addElement(file),JList 中显示的文本是文件的路径。但我只想显示文件名。但是,我不能这样做model.addElement(file.getName()),因为稍后我需要访问文件对象,而不仅仅是字符串。

如何在仅显示文件名的同时将文件对象添加到列表/模型中?谢谢!

【问题讨论】:

    标签: java swing jlist defaultlistmodel


    【解决方案1】:

    您可以通过创建自定义渲染器来做到这一点:

    class FileRenderer extends DefaultListCellRenderer
    {
        public Component getListCellRendererComponent(
            JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
        {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
    
            File file = (File)value;
            setText( file.getName() );
    
            return this;
        }
    }
    

    然后您使用以下方法设置 JList 的渲染器:

    list.setCellRenderer( new FileRenderer() );
    

    有关更多信息和工作示例,请参阅 Writing a Custom Cell Renderer 上的 Swing 教程部分

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多