teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追加

2016/11/05 02:40

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -4,4 +4,22 @@
4
4
  1. 同時には一つだけ
5
5
  「戻る」ボタンを押すと表示中の画面は消えて直前に表示されていた画面を復活させるなど。
6
6
  2. 同時に複数
7
- モーダルダイアログのようなものか複数のウィンドウをモードレスに表示するかで「戻る」の意味合いは違ってくると思います。
7
+ モーダルダイアログのようなものか複数のウィンドウをモードレスに表示するかで「戻る」の意味合いは違ってくると思います。
8
+
9
+ ---
10
+
11
+ 追記:
12
+ 1.のイメージであれば、「進む」「戻る」操作によって画面を切り替えるイメージがユーザーにとって自然に感じると思います。JavaFXの画面は以下のようにStage,Scene,Nodeの階層構造を持っているのですが、画面を切り替えるには適切な階層のNode(下記の(A))を実行時に付け替えることで実装してみたらいいのではないかと思います。
13
+
14
+ ```
15
+ Stage(=ウィンドウ)
16
+ +-> Scene
17
+ +-> Node(ルートノード)
18
+ +-> Node(全ての画面で共通)
19
+ ...
20
+ +-> Node(全ての画面で共通な部分)
21
+ +-> Node(切り替える部分) <--(A)
22
+ ....
23
+ ```
24
+
25
+ (A)以下のNode階層は画面ごとに違ったものになるのでそれらは個別のFXML上に記述し、コントローラーも別々にするのが作りやすいと思います。