2010-12-20 84 views
1

我讀通過Java FileDialog選擇目錄:僅限Mac OSX?

System.setProperty("apple.awt.fileDialogForDirectories", "true"); 

用戶可以通過FileDialog選擇目錄,現在FileDialog evoces本地文件選擇,所以這正是我想要的,但在它上面的一行:apple.awt...,這意味着什麼這個選項只適用於Mac OSX?

if(no) { 
    great 
} else { 
    what can i do to implement this on other operating systems than? 
} 

感謝您的幫助!

PS:我知道有很多人建議使用一個JFileChooser的,但在這種情況下,我非常喜歡FileDialog的,除非那是不可能的

回答

1

完全如您所願。 AWT在下面使用了本機庫。 OSX具有僅查找目錄的功能,而Windows不具備這一功能。 所以你只能改變使用不基於AWT的對話框,即Swing或SWT。

您可以定義具有平臺特定實現的接口。這給出了OSX上的一個很好的對話框,以及其他平臺上的一些工具。我就是做這個的。

+0

Windows確實有一個目錄選擇對話框,它只是在AWT最初創建時並不存在。 – Powerlord 2010-12-20 17:42:43

0

據我所知,FileDialog的不支持(在在所有平臺上使用目錄對話框。

您已經提到了Swing的JFileChooser,但您可能想要考慮SWT作爲您的小部件。

SWT是Eclipse(最初是IBM)的項目,用於創建更新的Java GUI工具包,該工具包在可用時仍然使用本機窗口小部件。

SWT的主要缺點是它不是標準Java發行版的一部分......每個平臺都有自己的SWT jar文件。

順便提一句,SWT有一個DirectoryDialog小部件。

+0

如果您正在使用Swing,則無法輕鬆切換到SWT。我知道我在說什麼,因爲我們正在準備將我們的Swing應用程序轉換爲SWT。 – Mot 2010-12-20 15:21:28

+0

@mklhmnn:由於他使用的是awt FileDialog類,並且不想使用JFileChooser,我認爲他沒有使用Swing。 – Powerlord 2010-12-20 15:26:03

+0

我正在使用一小組擺動組件,所以我猜SWT實現比JFileChooser更難實現,但是要感謝您指出SWT的存在(對我來說這是新的) – Samuel 2010-12-20 16:21:44