我在寫一個「簡單」Java程序,讓用戶更改桌面牆紙。 它基本上從用戶選擇的目錄中填充帶有文件的JList,並且用戶雙擊以將其中一個文件設置爲壁紙。簡單!Java,擴展文件以獲得更多屬性
我想,雖然一些屬性(布爾isFavorite,例如)爲程序更多的功能,但我不知道如何做到這一點...
我試圖使我自己的類壁紙其中擴展了File,但是當試圖用壁紙填充我的JList時,我在文件和壁紙之間切換時遇到了各種類轉換錯誤。所以我最終覆蓋了越來越多的File方法,直到我陷入如此深度的神祕錯誤網絡中,我不知道如何擺脫。
我得到了我的填充與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);
因爲我知道,我不是做什麼在這裏我是獨一無二的,我知道應該有「批准」的方式來做到這一點,那麼請大家指教一下從內置文件更改爲自定義壁紙的最佳方式嗎?
我的Wallpaper類中的構造函數只需要一個String參數(String filePath),然後調用「super(filePath);」我不確定是否應該通過super()調用File構造函數,還是應該自己創建...我仍然被這些面向對象的編程設計所困惑。 – Dunderklumpen
@Dunderklumpen你所描述的聽起來不錯。保留super(filePath)位。 – schmop
好吧,我不得不改變一下,不得不改變「File [] fileArray」到「Wallpaper [] fileArray」並在一堆地方改變文件到牆紙,但它似乎現在正常工作,字段「isFavorite 「可以使用。非常感謝您快速簡單的回答! – Dunderklumpen