在Java中,如何实现文件资源管理器之类的东西?

时间:2015-12-23 21:17:07

标签: java windows swing user-interface awt

我正在寻找一个非常简单的小部件:左侧窗格的树视图,右侧的文件夹内容,可在图标,缩略图或详细视图之间切换。基本上是Windows文件资源管理器的功能(不是像素像素)模拟,但在Java应用程序中。如何仅使用内置Java库?还是一个非常轻量级的框架

NOT A DUPLICATE

我的问题与上述不同,我现在意识到这比我最初的预期更难解释。两个澄清:

  1. 我的问题不是文件选择器。我问的是文件资源管理器类型的对话框。不同之处在于文件选择器真正专注于一个任务,选择一个文件。文件资源管理器的关注度稍差,让用户在没有明确目标的情况下浏览。
  2. 我的问题不是关于本机操作系统UI / L& F仿真。完全没有。我问的是使用图标和缩略图显示文件系统内容的基本功能。风格和边框等不是我的问题的一部分。
  3. 修改

    我正在寻找类似的东西 enter image description here

    注意它与此有何不同(JFileChooser) enter image description here

3 个答案:

答案 0 :(得分:2)

如果您想要内置于Java中的内容,JFileChooser将会这样做。

https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html

答案 1 :(得分:0)

如果您不使用Swing而使用SWT(如Eclipse),则可以使用SWT FileDialog

答案 2 :(得分:0)

可以使用AWT库自定义呈现整个资源管理器。虽然关于这一点的唯一困难部分是正确使用布局管理器来准确地获取所需组件并为每个按钮添加事件监听器,但使用AWT不会使它在不同操作系统上看起来像Explorer,因为AWT使用本机系统组件。

您可以检查操作系统是否不是Windows,如果不是,则使用Swing。在这种情况下,您必须重新构造每个使用过的组件,使其外观与目标Windows版本相同。即使你这样做了,你仍然需要以某种方式改变JFrame的外观和感觉,这可能是使用黑暗魔法,但是相当不利。您可以以非常古怪的方式执行此操作,只需setUndecorated(true)并操纵JFrame的边界,直到它允许您在外部绘制JFrame,以便你可以画出Windows'它周围的装饰没有调整窗口大小。除此之外,您还必须检查它是否已最大化,因为最大化的窗口在Windows中看起来并不相同。

简而言之,如果您只想让用户选择一个或多个文件,请使用JFileChooser。重新创建资源管理器并没有任何意义,但如果你想做什么,我就不会阻止你。