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"]
関連ページ一覧
- Java Doc 読解 System
- Java Doc 読解〜System.out〜
- Java Doc読解 〜System.In〜
- JavaDoc 読解 〜 Filesクラス 〜
- Java Doc読解 BufferedReader
- Java Doc 読解〜BufferedWriter〜
JavaFXでハローワールド〜OpenCVまで
- Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
- ステップアッププログラミング〜Java FxでHelloWorld解説〜
- Java StepUpPrograming〜JavaFX で四則計算〜
- Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
- Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
- Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
- Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
- Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine〜