目前,我正在嘗試復制NetBeans的“打開項目”文件選擇對話框,因為我希望使用類似的系統來選擇滿足某些條件的文件夾。但是,我無法強制對話框選擇滿足我的條件的對話框,而不選擇任何文件夾。我該怎么做呢?編輯:將文件夾視為NetBeans項目所需滿足的條件是它需要包含一個nbproject文件夾。到目前為止,我已經嘗試使用.setFileSelectionMode,但是對于我的目的而言,這還不夠嚴格。我的代碼(在main方法中):JFileChooser chooser = new JFileChooser();FileFilter filter = new FileFilter() { @Override public boolean accept(File f) { if (f.isDirectory()) { // check if this folder is a NetBeans Project File[] list = f.listFiles(); for (File sub : list) { if (sub.isDirectory()) { if (sub.getName().equals("nbproject")) { return true; } } } return false; } else { return false; } } @Override public String getDescription() { return "NetBeans Projects"; }};// so I can select the folder...// ...but I only want the user to be able to select stuff my filter acceptschooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);chooser.addChoosableFileFilter(filter);chooser.setFileFilter(new FileFilter() { @Override public boolean accept(File f) { return f.isDirectory(); } @Override public String getDescription() { return "Folders"; }});chooser.setAcceptAllFileFilterUsed(false);chooser.showOpenDialog(null);附錄:這是我必須瀏覽的示例文件結構:C:\USER\Documents\NetBeansProjects|- Project |- nbproject|- New Folder (empty)我只想選擇Project文件夾而不能New Folder。兩者仍然需要可見。但是,當我選擇時New Folder,程序將批準并關閉窗口。這不是我想要的行為。相反,我希望窗口僅打開文件夾。(旁注:我并不是真的想為此目的重寫整個類。但是,如果確實要重寫這個類,我可以使用一種解決方法,這種情況不需要發生。)
1 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
似乎沒有直接的方法或方法來解決此問題。然后,我將使用解決方法。
選擇文件夾的目的是簡化序列化操作(每個文件一個對象),但是我將所有內容都填充到一個文件中。
添加回答
舉報
0/150
提交
取消