使用JFileChooser時,有一個「詳細視圖」按鈕。 每個文件顯示5條信息。 圖標,名稱,大小,類型和「修改日期」。 什麼類控制'Type'值? 使用類'FileView',可以控制圖標和名稱。 使用類'文件',可以控制大小和「修改日期」。 類型的描述非常好,我想在其他地方使用它們,我也有一些「新」類型,我希望能夠給出「類型」描述 。JFileChooser和「詳細視圖」
回答
FileView>>getTypeDescription()
這是你在找什麼?
import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.*;
public class A {
public static void main(String[] args) {
File f = new File("f.jpg");
JFileChooser j = new JFileChooser();
System.out.println(j.getTypeDescription(f));
}
}
輸出是我的系統上:
F:> javac的A.java
F:> Java中的
IrfanView的JPG文件
這是因爲我在我的系統上安裝了IrfanView; JFileChooser/FileView >> getTypeDescription()查詢系統(在我的情況下爲Windows)獲取此信息。爲了「添加自己的描述」,你可以(比如說camickr)覆蓋getTypeDescription(),或者你可以將它添加到你的系統中(在Windows註冊表中的HKEY_CLASSES_ROOT下)。
是的,你是對的。問題是,在你的例子中「f.jpg」是一個真正的文件。 「類型」名稱的計算形式多於文件擴展名。例如,如果您只是創建了一個名稱,如「Bubba.jpg」,則類型描述將爲「Generic Type」。我希望看到什麼課程實際計算出「類型」值。 JFileChooser沒有「setTypeDescription方法,並且在FileView中設置類型不會改變或修改JFileChooser類型列中的類型描述 – Joe 2011-03-07 17:09:20
不,它不會查看文件;我可以創建0字節文件(例如使用記事本),命名爲「f.jpg」,運行我的程序,它會顯示「IrfanView JPG文件」。正如我所說,它根據擴展名(例如「jpg」)在註冊表(HKEY_CLASSES_ROOT)中查找此信息。 – 2011-03-07 17:26:21
只做了一個快速測試,覆蓋了JFileChooser類的getTypeDescrition方法,並不會在「Details View」中更改「Type」列中顯示的Type信息。 – Joe 2011-03-07 17:33:56
我認爲你必須做的重寫Java中的類型信息是用你自己的FileSystemView的子類實例化JFileChooser。
子類的FileSystemView到MyFileSystemView
覆蓋getSystemTypeDescription(文件F)
- 在overrride爲任何你想要的和返回值返回默認值的特殊文件類型回報
從使用超級呼叫,否則
實例化您的FileChoosers與以下原型之一,將您的自定義MyFileSystemView作爲第二個argum耳鼻喉科
的JFileChooser(文件currentDirectory所,的FileSystemView FSV)
的JFileChooser(字符串currentDirectoryPath,的FileSystemView FSV)
謝謝。由此,我能夠解決這個問題。在getSystemTypeDescription上調用super是不行的。但是創建一個空的JFileChooser併爲getTypeDescription返回它的值解決了這個問題。 – Joe 2011-03-08 20:29:33
- 1. JFileChooser中的詳細視圖
- 2. 使用UITableView和詳細視圖導航
- 3. .NET MVC - 列表和詳細視圖
- 4. TYPO3 RealUrl詳細視圖fixedPostVars
- 5. MKPinAnnotation到詳細視圖
- 6. EXC_BAD_ACCESS在詳細視圖?
- 7. 詳細信息視圖C#
- 8. UISplitViewController全屏詳細視圖
- 9. Sencha Touch itemtap詳細視圖
- 10. 更改TabBarController詳細視圖
- 11. 詳細視圖按鈕打開另一個詳細視圖根據sqlite db
- 12. 主詳細界面中詳細信息的多重視圖
- 13. 表視圖細胞 - 的UITableView - 不能在詳細視圖
- 14. 夫特 - 詳細視圖控制器根據表視圖細胞
- 15. 使用subdetail視圖和綁定的主詳細視圖
- 16. iPod的詳細視圖圖標
- 17. 多視圖(圖標,詳細,列表等)
- 18. UISplitViewController更改主窗口和詳細信息視圖窗體詳細信息視圖
- 19. iPad拆分視圖中的多個主視圖和詳細視圖,uisplitview
- 20. SugarCRM在詳細信息視圖中添加其他詳細信息圖標
- 21. 簡單的UITableView詳細視圖
- 22. 詳細視圖顯示問題
- 23. Twitter Bootstrap網格與詳細視圖
- 24. 核心數據詳細視圖錯誤
- 25. 詳細視圖狀態大小
- 26. 將數據加載到詳細視圖
- 27. 從tableviewcell彈出詳細視圖
- 28. Xcode模擬器與主詳細視圖
- 29. ViewFlipper具有ListActivity的詳細視圖?
- 30. Titanium Mobile行數據的詳細視圖
NO,類 '文件查看' 方法不改變 「類型」 列'JFileChooser'中的值。 – Joe 2011-03-07 15:25:57
+1,@Joe,如果你重寫該方法,那麼我相信你可以返回你想要的任何「描述」。但是我會覆蓋JFileChooser上的方法,而不是FileView。 – camickr 2011-03-07 15:57:41
號我試過了,'JFileChooser''Type'列完全沒有受到FileView的類型描述方法的影響。 – Joe 2011-03-07 16:02:08