回答編集履歴

2

リサイズ処理を行う処理をChangeListenerの中に移しました。

2016/07/16 15:28

投稿

argius
argius

スコア9390

test CHANGED
@@ -12,57 +12,51 @@
12
12
 
13
13
  ```lang-java
14
14
 
15
+ // インポート省略
16
+
17
+
18
+
15
19
  // ここを置き換える
16
20
 
17
21
  // stage.setScene(new Scene(root));
18
22
 
19
23
 
20
24
 
21
- Runnable resizePanes = () -> {
25
+ ChangeListener<Number> windowResizedListener = new ChangeListener<Number>() {
22
26
 
23
- double x = stage.getWidth();
27
+ @Override
24
28
 
25
- double y = stage.getHeight();
29
+ public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
26
30
 
27
- double cx;
31
+ double x = stage.getWidth();
28
32
 
29
- cx = x * 7 / 10;
33
+ double y = stage.getHeight();
30
34
 
31
- drawPane.setPrefWidth(cx);
35
+ double cx;
32
36
 
33
- drawPane.setPrefHeight(y);
37
+ cx = x * 7 / 10;
34
38
 
35
- operatePane.setLayoutX(cx);
39
+ drawPane.setPrefWidth(cx);
36
40
 
37
- cx = x * 3 / 10;
41
+ drawPane.setPrefHeight(y);
38
42
 
39
- operatePane.setPrefWidth(cx);
43
+ operatePane.setLayoutX(cx);
40
44
 
45
+ cx = x * 3 / 10;
46
+
47
+ operatePane.setPrefWidth(cx);
48
+
41
- operatePane.setPrefHeight(y);
49
+ operatePane.setPrefHeight(y);
50
+
51
+ }
42
52
 
43
53
  };
44
54
 
45
55
  Scene scene = new Scene(root);
46
56
 
47
- scene.widthProperty().addListener(new ChangeListener<Number>() {
57
+ scene.widthProperty().addListener(windowResizedListener);
48
58
 
49
- @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
50
-
51
- resizePanes.run();
52
-
53
- }
54
-
55
- });
56
-
57
- scene.heightProperty().addListener(new ChangeListener<Number>() {
59
+ scene.heightProperty().addListener(windowResizedListener);
58
-
59
- @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneHeight, Number newSceneHeight) {
60
-
61
- resizePanes.run();
62
-
63
- }
64
-
65
- });
66
60
 
67
61
  stage.setScene(scene);
68
62
 
@@ -81,3 +75,5 @@
81
75
  How to add a window resize listener to JavaFX scene
82
76
 
83
77
  [https://blog.idrsolutions.com/2012/11/adding-a-window-resize-listener-to-javafx-scene/](https://blog.idrsolutions.com/2012/11/adding-a-window-resize-listener-to-javafx-scene/)
78
+
79
+

1

「heightPropertyは無くても良いかも知れません」を追記しました。

2016/07/16 15:28

投稿

argius
argius

スコア9390

test CHANGED
@@ -5,6 +5,8 @@
5
5
 
6
6
 
7
7
  もうちょっと直観的にできそうなんですけど、とりあえず判明した方法で例を書いてみます。
8
+
9
+ 横方向のリサイズだけなら、`scene.heightProperty().addListener...`は無くても良いかも知れません。
8
10
 
9
11
 
10
12