在JList中显示文件对象的简单名称



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

如何在只显示文件名的情况下将文件对象添加到列表/模型?非常感谢。

您可以通过创建一个自定义渲染器来实现这一点:

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() );

有关更多信息和工作示例,请参阅Swing教程中关于编写自定义单元格渲染器的部分

相关内容

  • 没有找到相关文章

最新更新