2012-03-21 105 views
2

我需要知道哪3个最适合我。我的要求如下重要性顺序如下:JFileChooser与JDialog与FileDialog

  • 轻松保存和加载文件。
  • 文件类型过滤器文件选择(不是之后)。
  • 的外观和感觉是正是一样的本地OS大号& F.

如果有,我还没有提到,会更理想的对话框,请让我知道。

+1

从J开始的任何东西都是摆动的,所以不太可能与本机操作系统相匹配。 JFileChooser允许完全过滤,AWT FileDialog可能会更好。 JDialog是一个空白的对话框! – Adam 2012-03-21 00:26:46

+0

我已经知道了这么多。我真正追求的是满足所有3颗子弹的解决方案。我只是简直不敢相信,java不会提供这样的解决方案,提供熟悉的L&F和体面的过滤系统。这难道不可能实现吗? – 2012-03-21 00:43:21

回答

8

您的应用程序的其余部分是用什么编写的?如果您使用AWT,则应使用FileDialog。如果你使用Swing,你应该使用JFileChooser。这两门课都满足您的所有要求。 (A JDialog仅仅是一个空的窗口,你只能用它来打开文件,如果你添加一个Component它允许您和JFileChooser已经这样做了你。)

保存和加载具有与被写入您自己的方法,只能用于选择文件(JFileChooserFileDialog)。

FileDialogJFileChooser在选择期间支持文件过滤器。

FileDialog的默认UI是本机操作系统。 JFileChooser的(实际上,您的整个应用程序的)UI可以设置为本地操作系统'UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())

+0

FileDialog的文件过滤器很糟糕。我试过了。最后,我尝试setLookAndFeel它没有改变一件事,但我会放弃它。这可能是个人错误。 – 2012-03-21 00:58:03

+0

@PerryMonschau它可能会吸,但它仍然存在。您需要在创建组件之前调用'setLookAndFeel',或者在javadoc状态下调用最高级容器上的'SwingUtilities#updateComponentTreeUI'。 – Jeffrey 2012-03-21 01:02:49

+2

不,请参阅JFileChooser的内部组件具有相同的L&F,但该布局不是OS本地的。但是,FileDialog确实具有本机文件过滤系统,我只是习惯于不同的操作系统。 – 2012-03-21 01:09:24