非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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)ではおなじみのファイルダイアログとなりました。

 

スポンサーリンク

 - Java