我要求对当前使用JFileChooser的小applet进行一些更改。
其中一个主要的抱怨是文件选择器使用起来很麻烦,因为它的行为与本机小部件不同,特别是对于导航到根级别。
所以,知道这个以及JFileChooser遭受的所有其他问题(比如在Windows上缓存的zip文件......),我想知道java世界中存在一个可行的替代方案。
当然,有一个SWT使用本机小部件,但是将小程序大小增加25并不是一个真正的选择。那么,文件选择器是否有更好的纯java实现?
答案 0 :(得分:12)
AWT FileDialog
实际上确实使用了本机组件,但与大多数AWT与Swing问题一样,它的灵活性和可自定义性远低于Swing的JFileChooser
。所以有一个权衡:JFileChooser
可能有一个笨重的用户界面,但它通常更好用于大多数目的。但是,如果你真的希望你的文件选择对话框看起来像原生的那样,那么你可以使用FileDialog
。
答案 1 :(得分:6)
我知道这有点晚了,但它可能对其他用户有所帮助。您可以将应用程序的UI自定义到操作系统的UI:
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {e.printStackTrace(); }
答案 2 :(得分:5)
您也可以尝试XFileDialog。还没有尝试过,但看起来值得评估。
答案 3 :(得分:2)
我在JavaFX'周围写了wrapper。文件选择器(如果有)。如果包含在您的应用程序中,您可以替换
JFileChooser fileChooser = new JFileChooser();
与
JFileChooser fileChooser = new NativeJFileChooser();
然后它将使用底层平台的本机(和现代)文件选择器。并非一切都是100%相同,所以一定要事后测试,但大多数事情应该顺利进行。
答案 4 :(得分:0)
正如@htw所说,如果外观是您的主要关注点,请使用 FileDialog 。通过使用 FileDialog ,请注意有很多便利方法,你将无法使用......
我几次使用VFSJFileChooser。它不会受到JFileChooser错误的影响(因为zip文件只能加载窗口速度很慢),但界面不是“本机”。