本地文件面板提供類似文件管理器的交互:列表顯示、刷新、新建文件夾、刪除、重命名。採用 Swing JTable 展示,數據模型為 DefaultTableModel。
listLocalFiles(File dir). (當前目錄) 和 .. (父目錄) 虛擬項dir.listFiles(),構造 DiskFile 封裝對象<DIR>,不可讀文件顯示「未知」Date.toLocaleString() 本地化refreshCurrentFolder()getCurrentFolder()SwingUtilities.invokeLater(() -> listLocalFiles(dir))CreateFolderActionJOptionPane.showInputDialog 獲取名稱File.mkdir() 創建,重名檢查與結果彈窗提示refreshFolder(parent) 更新視圖DelFileAction(遞歸刪除 + 後台線程)JOptionPane.showConfirmDialogdelFile(File):
delete()RenameActionFile 對象JOptionPane.showInputDialog 輸入新名(預填舊名)file.renameTo(new File(parent, newName))Action 子類 (RefreshAction, CreateFolderAction 等),解耦 UI 與業務邏輯SwingUtilities.invokeLater)DefaultTableModel 持有數據,JTable 僅負責渲染
private void delFile(File file) {
try {
if (file.isFile()) {
if (!file.delete()) showError(file + " 無法刪除");
} else if (file.isDirectory()) {
File[] children = file.listFiles();
if (children != null) for (File c : children) delFile(c);
if (!file.delete()) showError(file + " 目錄無法刪除");
}
} catch (Exception ex) { logger.log(Level.SEVERE, null, ex); }
}