如何在java swing GUI中显示计算机文件和文件夹

时间:2011-10-10 14:23:53

标签: java swing jfilechooser

  

可能重复:
  Swing JTree with Checkbox and JFileChooser

我正在使用java swings开发一个应用程序。我使用jfilechooser来打开我的计算机中的文件和目录。但是jfilechooser中的目录和文件的结构不是我想要的方式。我想这样做< / p>

enter image description here

我如何实现这一目标?任何建议都会非常有用。谢谢。

2 个答案:

答案 0 :(得分:2)

TreeCellRenderer您需要使用JTree。您可以构建自己的节点数据结构,按照您认为合适的方式组织它们,然后使用TreeCellRenderer渲染它们。

答案 1 :(得分:2)

要显示正确的图标我建议使用javax.swing.filechooser.FileSystemView

以下是我编写的用于创建列表和文件系统根组合框的一些类:

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JFileRootList.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JFileRootComboBox.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/filechooser/FileRootComboBoxModel.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/filechooser/FileRootCellRenderer.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/CellRenderer.html

要使用该库,您可以使用以下Maven依赖项:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>lib-core</artifactId>  
    <version>0.1</version>  
</dependency>  

或者从这里下载: http://sourceforge.net/projects/softsmithy/files/softsmithy/v0.1/

以下是来源:

http://softsmithy.hg.sourceforge.net/hgweb/softsmithy/lib/main-golden/file/5c4db802573b/lib-core/src/main/java/org/softsmithy/lib/swing/JFileRootList.java

http://softsmithy.hg.sourceforge.net/hgweb/softsmithy/lib/main-golden/file/5c4db802573b/lib-core/src/main/java/org/softsmithy/lib/swing/JFileRootComboBox.java

http://softsmithy.hg.sourceforge.net/hgweb/softsmithy/lib/main-golden/file/5c4db802573b/lib-core/src/main/java/org/softsmithy/lib/swing/filechooser/FileRootComboBoxModel.java

http://softsmithy.hg.sourceforge.net/hgweb/softsmithy/lib/main-golden/file/5c4db802573b/lib-core/src/main/java/org/softsmithy/lib/swing/filechooser/FileRootCellRenderer.java

http://softsmithy.hg.sourceforge.net/hgweb/softsmithy/lib/main-golden/file/5c4db802573b/lib-core/src/main/java/org/softsmithy/lib/swing/CellRenderer.java