【问题标题】:JFileChooser vs JDialog vs FileDialogJFileChooser vs JDialog vs FileDialog
【发布时间】:2012-03-21 00:01:04
【问题描述】:

我需要知道这 3 个中哪一个最适合我。我的要求按重要性排序如下:

  • 轻松保存和加载文件。
  • 文件类型过滤器文件选择期间(不是之后)。
  • 外观和感觉完全相同与本机 OS L&F 相同。

如果有一个我没有提到的更理想的对话框,请告诉我。

【问题讨论】:

  • 任何以 J 开头的东西都是摇摆不定的,所以不太可能很好地匹配原生操作系统。 JFileChooser 允许完全过滤,AWT FileDialog 可能会更好。 JDialog 是一个空白对话框!!
  • 我知道的就这么多了。我真正追求的是满足所有 3 个项目符号的解决方案。我简直不敢相信 java 不会提供这样的解决方案,既提供熟悉的 L&F 又提供体面的过滤系统。有没有办法做到这一点?

标签: java jfilechooser jdialog filedialog


【解决方案1】:

您的应用程序的其余部分是用什么编写的?如果你使用 AWT,你应该使用FileDialog。如果你使用 Swing,你应该使用JFileChooser。这两个课程都满足您的所有要求。 (JDialog 只是一个空窗口,您只能使用它来打开文件,前提是您向其中添加 Component 允许您这样做,并且JFileChooser 已经为您执行此操作。)

保存和加载必须用自己的方法编写,JFileChooserFileDialog 都只能用于选择文件。

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

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

【讨论】:

  • FileDialog 的文件过滤器很糟糕。我试过了。最后我尝试了 setLookAndFeel 它没有改变任何东西,但我会试一试。这可能是个人错误。
  • @PerryMonschau 它可能很糟糕,但它仍然存在。如 javadoc 所述,您要么需要在创建组件之前调用 setLookAndFeel,要么在最高级别的容器上调用 SwingUtilities#updateComponentTreeUI
  • 不,请参阅 JFileChooser 的内部组件具有相同的 L&F,但是布局不是操作系统原生的。然而,FileDialog 确实有原生文件过滤系统,我只是习惯了不同的操作系统。
猜你喜欢
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 2011-09-18
  • 1970-01-01
相关资源
最近更新 更多