JavaFX FileChooser 〜ファイルの選択をする部品〜

FileChooserクラス

ブラウザ(Google Chrome, Safari, Edge etc..)で、ファイルを選択してアップロードするときのような、画面操作を実現するクラスFileChooserクラスを紹介します。

JavaFXはApplicationクラスを継承してlaunchを実行すれば起動できるシンプルな扱いで動かせます。

具体的には下のように書きます。参照先はこちらOracleDocsです。

コードの書き方

1. Applicationクラスを継承

作成したクラスにApplicationクラスを継承します。下のクラスは「HelloWorld」を作成して「extends Application」と追加しました。

import文は「import javafx.application.Application;」と書きます。

public class HelloWorld extends Application {

2. メインメソッドの実装

単純に下のように書けば動きます。メインメソッドで呼び出しているのはApplication#launch()メソッドです。継承しているので、そのまま呼び出せます。
※launchメソッドはstaticメソッドなので、メインメソッド内でも直接呼び出すことができます。

 public static void main(String[] args) {
        launch(args);
 }

3. start()メソッドの実装

このメソッドをオーバーライドして描画する画面のプログラムを行います。
Application#start()メソッドをHelloWorldクラスでstart()メソッドを定義(実装)することで、オーバーライドすることができます。日本語にすると「上書き」です。
そんなわけで、HelloWorldクラスのlaunch()メソッドを起動することで、このクラスのstart()メソッドが動きます。

ファイルチューザーの扱い方

いよいよ、描画処理の内容に入ります。
下のように、インスタンス化して動かします。細かいところは、実装してみて確認してください(笑)

 // ファイルクラスをインスタンス化
 FileChooser fileChooser = new FileChooser();
 // ダイヤログを表示した時の文字(下のキャプチャ参照)
 fileChooser.setTitle("ファイルを選択してください。");
 // Mac(自分の端末)でやった場合はファイルタイプを指定するものがないので無効?
 fileChooser.getExtensionFilters().addAll(
         new ExtensionFilter("Text Files", "*.txt"),
         new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"),
         new ExtensionFilter("Audio Files", "*.wav", "*.mp3", "*.aac"),
         new ExtensionFilter("All Files", "*.*"));
 File selectedFile = fileChooser.showOpenDialog(mainStage)

そして最後の行にあるファイルを書き出ししないとファイルが作成されません。

そして、キャンセルををした場合はFileがNullになるようです。

[rakuten ids="auc-dejima:10002899"]

関連ページ一覧

  1. Java Doc 読解 System
  2. Java Doc 読解〜System.out
  3. Java Doc読解 System.In
  4. JavaDoc 読解  Filesクラス 
  5. Java Doc読解 BufferedReader
  6. Java Doc 読解〜BufferedWriter

JavaFXでハローワールド〜OpenCVまで

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine〜




投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す