回答編集履歴
2
リサイズ処理を行う処理をChangeListenerの中に移しました。
answer
CHANGED
@@ -5,32 +5,29 @@
|
|
5
5
|
横方向のリサイズだけなら、`scene.heightProperty().addListener...`は無くても良いかも知れません。
|
6
6
|
|
7
7
|
```lang-java
|
8
|
+
// インポート省略
|
9
|
+
|
8
10
|
// ここを置き換える
|
9
11
|
// stage.setScene(new Scene(root));
|
10
12
|
|
11
|
-
|
13
|
+
ChangeListener<Number> windowResizedListener = new ChangeListener<Number>() {
|
14
|
+
@Override
|
15
|
+
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
|
12
|
-
|
16
|
+
double x = stage.getWidth();
|
13
|
-
|
17
|
+
double y = stage.getHeight();
|
14
|
-
|
18
|
+
double cx;
|
15
|
-
|
19
|
+
cx = x * 7 / 10;
|
16
|
-
|
20
|
+
drawPane.setPrefWidth(cx);
|
17
|
-
|
21
|
+
drawPane.setPrefHeight(y);
|
18
|
-
|
22
|
+
operatePane.setLayoutX(cx);
|
19
|
-
|
23
|
+
cx = x * 3 / 10;
|
20
|
-
|
24
|
+
operatePane.setPrefWidth(cx);
|
21
|
-
|
25
|
+
operatePane.setPrefHeight(y);
|
26
|
+
}
|
22
27
|
};
|
23
28
|
Scene scene = new Scene(root);
|
24
|
-
scene.widthProperty().addListener(
|
29
|
+
scene.widthProperty().addListener(windowResizedListener);
|
25
|
-
@Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
|
26
|
-
resizePanes.run();
|
27
|
-
}
|
28
|
-
});
|
29
|
-
scene.heightProperty().addListener(
|
30
|
+
scene.heightProperty().addListener(windowResizedListener);
|
30
|
-
@Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneHeight, Number newSceneHeight) {
|
31
|
-
resizePanes.run();
|
32
|
-
}
|
33
|
-
});
|
34
31
|
stage.setScene(scene);
|
35
32
|
```
|
36
33
|
|
@@ -39,4 +36,4 @@
|
|
39
36
|
参考にしたページ:
|
40
37
|
|
41
38
|
How to add a window resize listener to JavaFX scene
|
42
|
-
[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/)
|
39
|
+
[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/)
|
1
「heightPropertyは無くても良いかも知れません」を追記しました。
answer
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
JavaFXの場合だとどうするのが定番なのか分からないので調べてみました。
|
3
3
|
|
4
4
|
もうちょっと直観的にできそうなんですけど、とりあえず判明した方法で例を書いてみます。
|
5
|
+
横方向のリサイズだけなら、`scene.heightProperty().addListener...`は無くても良いかも知れません。
|
5
6
|
|
6
7
|
```lang-java
|
7
8
|
// ここを置き換える
|