gpt4 book ai didi

Java,扩展File以获得更多属性

转载 作者:行者123 更新时间:2023-12-01 12:58:46 25 4
gpt4 key购买 nike

我正在编写一个“简单”的 Java 程序,可以让用户更改桌面壁纸。它基本上用用户选择的目录中的文件填充 JList,然后用户双击将其中一个文件设置为壁纸。简单!

我想要更多的属性(例如 boolean isFavorite)来为程序提供更多功能,但我不知道如何做到这一点......

我尝试制作自己的类壁纸来扩展文件,但是当尝试用壁纸填充我的 JList 时,我在文件和壁纸之间切换时遇到了各种类转换错误。因此,我最终重写了越来越多的 File 方法,直到我陷入了一个充满神秘错误的深网,我不知道如何摆脱。

我想到用 Andrew 的文件填充我的 JList,他在此处的回答中这样做了:JList that contains the list of Files in a directory

我的看起来像这样,

File wallFile = new File(System.getProperty("user.home"));

//Create the file array
File[] fileArray = wallFile.listFiles(new TextFileFilter());

//Put File objects in the list
JList<File> fileList = new JList<File>(fileArray);

因为我知道我在这里没有做任何独特的事情,所以我知道应该有“批准”的方法来做到这一点,所以有人请告诉我从内置文件更改为自定义壁纸的最佳方法?

最佳答案

listFiles() 方法将使用默认的 File 类,而不是扩展的 WallPaper 类。因此,如果您尝试将这些对象之一转换到壁纸上,您将会收到错误消息。相反,请执行以下操作:

String [] nameArray = wallFile.list(new TextFileFilter());
File [] fileArray = new File [nameArray.length];
for (int i=0;i<nameArray.length;i++)
fileArray[i] = new WallPaper(new File(wallFile, nameArray[i]).getAbsolutePath());//provided you have a WallPaper constructor that accepts an absolute path

关于Java,扩展File以获得更多属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23674898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com