5

JFileChooserを使ったプログラムを作っています。アプリケーションを設定しました

UIManager.getSystemLookAndFeelClassName()

これは、Ubuntuのほとんどすべてで問題なく機能します。私がこれまでに遭遇した唯一の問題は、JFileChooserがかなりひどいように見えることです。 SystemLookAndFeelを使用したJFileChooser

これをUbuntuのデフォルトのファイルチューザーのように見せるための方法はありますか?すなわち。 必要なファイル選択ダイアログ

使ってみました

UIManager.getCrossPlatformLookAndFeelClassName()

これにより、JFileChooserダイアログの見栄えは良くなりますが、それでもネイティブな見た目ではなく、残りの部分もアプリケーションの感触を損ないます。

ありがとう。

4

4 に答える 4

2

正しく思い出せば、ストックJDKはgtk1を使用していましたが、ubuntuは現在gtk2を使用しています。どこか忘れてしまいましたが、どこかでJava用のgtk2に出くわしました。グーグル?おそらくあなたが望んでいたものではないでしょう、ごめんなさい。

于 2011-02-13T12:00:29.410 に答える
1

FileDialogこれ以上魅力的かどうかがわかるかもしれません。これがです。

FileDialog

于 2011-02-13T12:01:23.160 に答える
1

ニンバスのルックアンドフィールには、まともなファイルチューザーがあります。これはアプリケーション全体に影響しますが、見た目は気に入るかもしれません。

また、必要に応じて独自のファイルチューザーを作成することもできます。

于 2011-02-13T14:06:36.607 に答える
0

スイングの代わりにSWTを使用することもできます。

SwingはWindows7スタイルのファイルチューザーをサポートしていますか?

次のコードは上記のリンクからのものです

import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class SWTFileOpenSnippet {
    public static void main (String [] args) {
        Display display = new Display ();
        Shell shell = new Shell (display);
        // Don't show the shell.
        //shell.open ();  
        FileDialog dialog = new FileDialog (shell, SWT.OPEN | SWT.MULTI);
        String [] filterNames = new String [] {"All Files (*)"};
        String [] filterExtensions = new String [] {"*"};
        String filterPath = "c:\\";
        dialog.setFilterNames (filterNames);
        dialog.setFilterExtensions (filterExtensions);
        dialog.setFilterPath (filterPath);
        dialog.open();
        System.out.println ("Selected files: ");
        String[] selectedFileNames = dialog.getFileNames();
        for(String fileName : selectedFileNames) {
            System.out.println("  " + fileName);
        }
        shell.close();
        while (!shell.isDisposed ()) {
            if (!display.readAndDispatch ()) display.sleep ();
        }
        display.dispose ();
    }
}
于 2013-04-27T20:36:01.157 に答える