Java/Swing: JFileChooserのデザインが気に入らない時の意外な対策(OS独自のファイルダイアログ表示方法)
Java/SwingでファイルダイアログといえばJFileChooserですが、デザインに難があるんですよね。
JFileChooser filechooser = new JFileChooser(); int ans = filechooser.showOpenDialog(this); if(ans==JFileChooser.APPROVE_OPTION){}
上のコードを実行すると以下のようになります。ルックアンドフィールを変えると大きくデザインが変わるのですがどれも使い勝手が良いとは言えません。特に困ったのはネットワークドライブにアクセスできないことです。Windowsだとネットワークドライブの割当を行うことでアクセスできそうですがLinuxではちょっと手間がかかります(リンクを貼るとか)。
デザインを馴染みのあるOS独自のものに変えたい場合は、JFileChooserではなくAWTのFileDialog
を使います。AWTなんて使うことないだろうと思っていましたが意外なところで登場しようとは思いませんでした。
FileDialog dialog = new FileDialog(this, "FileDialog (AWT)", FileDialog.LOAD); dialog.setVisible(true); String filename = dialog.getFile(); if (filename != null){}
実行結果はこんな感じです。Ubuntu Linux(Gnome)ではおなじみのファイルダイアログとなりました。
スポンサーリンク