回答編集履歴
2
リサイズ処理を行う処理をChangeListenerの中に移しました。
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
|
-
|
25
|
+
ChangeListener<Number> windowResizedListener = new ChangeListener<Number>() {
|
22
26
|
|
23
|
-
|
27
|
+
@Override
|
24
28
|
|
25
|
-
|
29
|
+
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
|
26
30
|
|
27
|
-
double
|
31
|
+
double x = stage.getWidth();
|
28
32
|
|
29
|
-
|
33
|
+
double y = stage.getHeight();
|
30
34
|
|
31
|
-
d
|
35
|
+
double cx;
|
32
36
|
|
33
|
-
|
37
|
+
cx = x * 7 / 10;
|
34
38
|
|
35
|
-
|
39
|
+
drawPane.setPrefWidth(cx);
|
36
40
|
|
37
|
-
|
41
|
+
drawPane.setPrefHeight(y);
|
38
42
|
|
39
|
-
operatePane.set
|
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(n
|
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(n
|
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は無くても良いかも知れません」を追記しました。
test
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
|
6
6
|
|
7
7
|
もうちょっと直観的にできそうなんですけど、とりあえず判明した方法で例を書いてみます。
|
8
|
+
|
9
|
+
横方向のリサイズだけなら、`scene.heightProperty().addListener...`は無くても良いかも知れません。
|
8
10
|
|
9
11
|
|
10
12
|
|