1

私はそれを読んだ

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

ユーザーは を介し​​てディレクトリを選択できます。これで、ネイティブ ファイル チューザーが呼び出されます。これはまさに私が望むものですが、上記の行には次のように書かれていFileDialogます。FileDialogapple.awt...

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

助けてくれてありがとう!

PS: 多くの人が JFileChooser の使用を提案していることは知っていますが、この場合、それが不可能な場合を除いて、FileDialog を非常に好みます。

4

2 に答える 2

1

それはあなたが恐れていた通りです。AWTはその下でネイティブライブラリを使用しました。OSXにはディレクトリのみを検索する機能がありますが、Windowsにはありません。したがって、唯一の変更は、AWTに基づかないダイアログ、つまりSwingまたはSWTを使用することです。

プラットフォーム固有の実装を使用してインターフェースを定義できます。これにより、OSXや他のプラットフォームで機能する見栄えの良いダイアログが表示されます。それが私がしていることです。

于 2010-12-20T15:45:50.490 に答える
0

私の知る限り、FileDialog は、すべてのプラットフォームでのディレクトリ ダイアログの使用を (コード内で) サポートしていません。

Swing の JFileChooser については既に言及しましたが、代わりにウィジェットに SWT を検討することをお勧めします。

SWTは Eclipse (元は IBM) のプロジェクトで、ネイティブ ウィジェットが利用可能になったときにそれを引き続き使用する、更新された Java GUI ツールキットを作成します。

SWT の主な欠点は、標準の Java ディストリビューションの一部ではないことです...そして、各プラットフォームには独自の SWT jar ファイルがあります。

ちなみにSWTにはDirectoryDialogウィジェットがあります。

于 2010-12-20T15:11:42.680 に答える