当前位置: 首页 > 知识库问答 >
问题:

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

龚浩宕
2023-03-14

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

共有1个答案

公冶高峯
2023-03-14

您可以通过创建一个自定义呈现器来完成此操作:

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教程中关于编写自定义单元格呈现器的部分

 类似资料:
  • 我正在进行一个项目,我应该创建一个应用程序,该应用程序会获取信息并将其存储在JList中,当我在JList中选择一个人的姓名时,它应该会显示此人的联系信息 我制作了两个类,一个是contact类,另一个是JFrame类。 这是接触类 然后这是我正在处理的添加按钮的代码。 我只是需要帮助添加到JList中的联系人类,并且能够在JList上显示第一个和最后一个名字。谢谢你提前帮助我

  • 这里,类的构造函数接受JButton并向其添加鼠标侦听器,从而触发JPopupMenu,该JPopupMenu只有一个组件,即保存整个数据的JList。此外,将带有数据项的ArrayList链接到ListModel。 设置数据项。 这就是混乱产生的地方。我从鼠标事件位置/点正确地获取了数据项(WifiItem),但是当我单击WifiItem的JButton时,它不会触发该方法,就像它似乎没有检测到

  • 这让我很困惑。我在JList中添加对象,如下所示: 那么如何显示对象中的文本呢?非常感谢你。

  • 我们正在评估一个大数据项目的AWS胶水,并使用一些ETL。我们添加了一个爬虫程序,它可以正确地从S3中提取CSV文件。最初,我们只想将CSV转换为JSON,并将文件放在另一个S3位置(相同的bucket,不同的路径)。 我们使用了AWS提供的脚本(这里没有自定义脚本)。并且只是映射了所有列。 目标文件夹为空(作业刚刚创建),但作业失败,出现“文件已存在”:此处为快照。我们假装丢弃的S3位置在开始作

  • 问题内容: 因此,我想出了如何获取所有文件和目录并将其添加到树视图中的方法,但它向我展示了完整的文件路径:C / user / file.txt我只是想要文件或文件夹名称,而不是路径。 创建列表的代码如下: 然后,我将返回的TreeItem用作treeview.setroot(treeItem obj); 任何帮助将不胜感激。 问题答案: 使用自定义确定项目如何在中显示:

  • 如何将单对象转换为简单列表对象? 我使用下面的代码: