2012-03-21 211 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