別のブログで公開してたものです。
一部をこっちのブログに移行しようと手動で(^^;)移行したものです。

ファイル選択ダイアログは、javafx.stage.FileChooserを使用します。

次のような感じ。

FileChooser fileChooser = new FileChooser();
        
fileChooser.setTitle("ファイル選択");
// 拡張子フィルタを設定
fileChooser.getExtensionFilters().add(
	new FileChooser.ExtensionFilter("イメージファイル", "*.jpg", "*.png")
);
fileChooser.getExtensionFilters().add(
	new FileChooser.ExtensionFilter("すべてのファイル", "*.*")
);
// 初期ディレクトリをホームにする。
fileChooser.setInitialDirectory(new File(System.getProperty("user.home")));

// ファイル選択
File file = fileChooser.showOpenDialog(mStage);
if(file != null) {
	System.out.println(file.getPath());
}

複数ファイル選択は、showOpenDialogの代わりにshowOpenMultipleDialogを呼びます。

List<File> files = fileChooser.showOpenMultipleDialog(mStage);
if(files != null) {
	for(File f : files) {
		System.out.println(f.getPath());
	}
}

ファイル保存は、初期ファイル名をsetInitialFileNameで設定してshowOpenDialogの代わりにshowSaveDialogを呼びます。

fileChooser.setInitialFileName("hoge.jpg");
File file = fileChooser.showSaveDialog(mStage);
if(file != null) {
	System.out.println(file.getPath());
}

このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

別のブログで公開してたものです。
一部をこっちのブログに移行しようと手動で(^^;)移行したものです。

JavaFXにメッセージボックスがなさそうなんで簡単なのを作ってみた。

とりあえず、OKボタン一個とメッセージを表示するラベルしかないのだけど。

ソース:TestMessageBox.zip

ソース内の
FXMLMessageBox.fxml
MessageBoxController.java
MessageBox.java
がメッセージボックス本体。
それ以外が呼び出しているところやなんやら。

MessageBoxを使うのにStageが必要になるんだけどControllerクラス内で取得する必要があるけどスマートに取得する方法がないんでApplicationを継承したクラスでControllerクラスに渡すようにしている。




このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

別のブログで公開してたものです。
一部をこっちのブログに移行しようと手動で(^^;)移行したものです。

たいがいのウィンドウシステムではワーカースレッドから直接GUI部品を操作することができない。Java+JavaFXでもできません。

JavaFXの場合、JavaFX Application Threadが動いていてそこでしかできない。
Platform.runLaterを使うとそのスレッドで処理することができる。

次のような感じ。logTextはTextArea。

private void AddMessage(String msg) {
	Platform.runLater(() -> {
		logText.appendText(msg);
		logText.appendText("\n");
	});
}


このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ