18

我请求对当前使用 JFileChooser 的小程序进行一些更改。
主要的抱怨之一是文件选择器使用起来很麻烦,因为它的行为与本机小部件不同,尤其是在导航到根级别时。

因此,知道了这一点以及 JFileChooser 遭受的所有其他问题(例如 Windows 上的 zip 文件缓存......),我想知道 java 世界中是否存在可行的替代方案。

当然,也有使用本机小部件的 SWT,但将小程序大小增加 25 并不是一个真正的选择。那么,文件选择器有更好的纯 java 实现吗?

4

5 回答 5

12

AWTFileDialog实际上确实使用了本机组件,但与大多数 AWT 与 Swing 的问题一样,它的灵活性和可定制性远不如 Swing 的JFileChooser. 所以有一个权衡:JFileChooser可能有一个笨重的用户界面,但它通常更适合大多数用途。但是,如果您真的希望您的文件选择对话框看起来和感觉像原生对话框,那么您可以使用FileDialog.

于 2009-04-17T08:15:06.060 回答
6

我知道这有点晚了,但它可能会帮助其他用户。您可以将应用程序的 UI 自定义为操作系统的 UI:

try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {e.printStackTrace();     }
于 2010-03-02T05:29:04.613 回答
5

您也可以尝试XFileDialog。还没有尝试太多,但看起来值得评估。

于 2010-02-10T08:05:33.933 回答
2

如果可用,我围绕 JavaFX 的文件选择器编写了一个包装器。如果包含在您的应用程序中,您可以替换

JFileChooser fileChooser = new JFileChooser();

JFileChooser fileChooser = new NativeJFileChooser();

然后它将使用底层平台的本机(和现代)文件选择器。并非一切都 100% 相同,因此请确保事后对其进行测试,但大多数事情都应该顺利进行。

于 2017-06-13T09:20:37.613 回答
0

正如@htw 所说,如果外观是您的主要关注点,请使用FileDialog 。通过使用FileDialog请注意,您将无法使用许多方便的方法...

我用过VFSJFileChooser几次。它没有 JFileChooser 错误(由于 zip 文件加载缓慢,仅限 Windows),但界面不是“原生”的。

于 2009-04-17T12:49:41.640 回答