2015年04月

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

ファイル選択ダイアログは、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
ブログランキング・にほんブログ村へ
にほんブログ村

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

ちっと、こまごましたものをあげてく。

  • waitやvsyncのフレーム数って?
    3DSは約60fpsらいしいのでwait 60で約1秒待ちになる。
  • 配列は()ではなくて[]を使って
    DIM A[10]
    と宣言する。この場合は添字は0〜9になる。
  • コンソールのフォントデータは隠しグラフィックページGRPFにある。LOADや、SAVEしかできないようだ。
  • 文字列変数の各文字は配列でアクセスできる。
    A$="123":PRINT A$[1]
    とすると、"2"が表示される。
  • マイクからのサンプリングデータのサイズはシステム変数MICSIZEを見ろ!w
    MICSTART命令とかの説明のところに書かれていないから8180*32なんてやってた(^^;)
  • "OPTION STRICT"でStrictモードにすると変数の宣言をしないといけなくなるる。このとき、"VAR A=10"なんて書き方で宣言と値の代入ができる。

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

画面構成は、
コンソール画面、
スプライト、
BG画面(0〜3)、
グラフィック画面、
背景色
で構成されている。

Z座標を指定すると重なり順を変更できる。Z座標は、1024〜-256で0が液晶面、1024が奥、-256が手前になる。
コンソール画面はLOCATE命令で文字単位で設定できる。
スプライトは、SPOFS命令でスプライト単位で設定できる。
BG画面は、BGOFS命令でBG画面レイヤー単位で設定できる。
グラフィック画面は、GPIO命令で設定できる。
背景色は一番奥になる。

コンソール画面
上画面
50x30文字表示でき、PRINT文で文字が表示できる。
下画面
40x30文字表示できる。
上下画面連続表示(XSCREEN 4)
40x60文字表示できる。

スプライト
上下画面合わせて、512個使用できる。XSCREEN命令で上画面で使用するスプライト数を指定する。残りがした画面用になる。
キャラクタデータは、デフォルトでグラフィックページ4に描画させてるものを基本16x16ドットで個別に任意サイズのものが使える。

BG画面
上画面
16x16ドットのキャラクタを25x15キャラ分表示できる。
下画面
16x16ドットのキャラクタを20x15キャラ分表示できる。
上下連続表示(XSCREEN 4)

16x16ドットのキャラクタを20x30キャラ分表示できる。

BGSCREEN命令でキャラ単位での画面のサイズ(幅x高で16383以下まで)を指定でき、BGOFS命令で表示位置を指定できる。これでスクロールができることになる。昔のハードウェアスクロールみたいに上下、左右が筒状になっていないようなので注意。
BGキャラクタデータはデフォルトでグラフィックページ5に描画されているものを使用する。

グラフィック画面
上画面
400x240ドット。デフォルトでグラフィックページ0が割り当てられている。
下画面
320x240ドット。デフォルトでグラフィックページ1が割り当てられている。
上下連続表示(XSCREEN 4)
320x480ドット。デフォルトでグラフィックページ0が割り当てられている。

グラフィックページは512x512ドットだが、表示位置を指定するような命令がないのでスクロールのようなものはできないようだ。

背景色
背景色は一番奥に配置され、BACKCOLOR命令で色を指定する。

↑このページのトップヘ