使用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