2009-04-17 12 views
18

現在、JFileChooserを使用している小さなアプレットにいくつかの変更を加える要求があります。
主な苦情の1つは、特にルートレベルまでナビゲートするためにネイティブウィジェットとは異なる動作をするため、ファイルチューザーが使用する痛みであることです。JFileChooserの代替

それで、JFileChooserが苦しんでいること(Windowsのzipファイルキャッシングのように...)を知って、私は実行可能な代替がJavaの世界に存在するのだろうと思っていました。

もちろん、ネイティブウィジェットを使用するSWTがありますが、アプレットサイズを25ずつ増やすことは実際の選択肢ではありません。では、ファイルチューザのより純粋なJava実装がありますか?

+0

標準のWindowsオープンダイアログフォームを開き、ダイアログフォームとして保存する方法があります。私はちょうどそれを行う方法を覚えていない。 –

答えて

5

XFileDialogでもお試しいただけます。まだそれほど試したことはありませんが、評価する価値があります。

+0

うわー、それはまさに私が探していたものに見えます。ありがとう! – gizmo

+4

これはかなりクールですが、Windowsのみであり、JNIを使​​用しています。クロスプラットフォームの代替手段はありますか? – sworisbreathing

12

AWT FileDialogは実際にネイティブコンポーネントを使用していますが、Swingの問題対最もAWTと同様に、それはSwingのJFileChooserよりもはるかに少ない柔軟でカスタマイズ可能です。したがって、トレードオフがあります:JFileChooserには厄介なユーザーインターフェイスがあるかもしれませんが、ほとんどの場合、通常はより良いでしょう。あなたのファイルがネイティブのものと同じように見えるようにするには、FileDialogと一緒に行くことができます。

0

@htwと同じように、外観と感触が主な関心事である場合は、FileDialogを使用してください。 FileDialogを使用することにより、使用できない便利な方法がたくさんあることにご注意ください。

私はVFSJFileChooserを数回使用しました。 JFileChooserのバグ(Zipファイルやウィンドウのみのために読み込みが遅くなる)はありませんが、インターフェイスは「ネイティブ」ではありません。

6

私はこれが少し遅れたことは知っていますが、他のユーザーに役立つかもしれません。あなたは、OSのUIへのアプリケーションのUIをカスタマイズすることができます。

try { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    } catch (Exception e) {e.printStackTrace();  } 
+2

私はここでもかなり遅れていますが、これはかなり良い仕事ですが、システムのルックアンドフィールを使用しているOS XのJFileChooserはネイティブダイアログをまったく彷彿させません。 – sbook

+0

Javaで開いているウィンドウを開き、ファイルダイアログウィンドウを保存する方法がありますか?私はそれがどのように行われたのか覚えていない。 –

2

利用できる場合、私はJavaFXの「ファイルチュー周りwrapperを書きました。お使いのアプリケーションに含まれている場合は、

JFileChooser fileChooser = new NativeJFileChooser(); 

JFileChooser fileChooser = new JFileChooser(); 

を置き換えることができますそれから、ネイティブ(および現代)基本となるプラットフォームのファイル選択を使用します。すべてが同じように動作するわけではないので、後でそれをテストしてください。しかし、ほとんどのことはスムーズに行かなければなりません。

+1

ありがとう@Veluria!私の最初のテストは素晴らしかったです - これはどんなアプリケーションでもできるようにOSのダイアログを使用し、うまくいくように見えます(OSXとWin10をチェックしてください) –