回答編集履歴
3
typo
test
CHANGED
@@ -26,13 +26,12 @@
|
|
26
26
|
|
27
27
|
```java
|
28
28
|
final ScrollPane scrollPane = ...;
|
29
|
-
primaryStage.setScene(new Scene(scrollPane));
|
30
|
-
...
|
31
29
|
primaryStage.addEventHandler(WindowEvent.WINDOW_SHOWN, new EventHandler<WindowEvent>() {
|
32
30
|
@Override
|
33
31
|
public void handle(WindowEvent event) {
|
34
32
|
System.out.println(scrollPane.getChildrenUnmodifiable());
|
35
33
|
}
|
36
34
|
});
|
35
|
+
primaryStage.setScene(new Scene(scrollPane));
|
37
36
|
primaryStage.show();
|
38
37
|
```
|
2
追記
test
CHANGED
@@ -13,3 +13,26 @@
|
|
13
13
|
```
|
14
14
|
|
15
15
|
あとは、お好きに。
|
16
|
+
|
17
|
+
----
|
18
|
+
|
19
|
+
> scrollPane.getChildrenUnmodifiable()の部分で子ノードの数がゼロになっていて取得できないです。
|
20
|
+
|
21
|
+
追記
|
22
|
+
|
23
|
+
ScrollPaneを生成した直後に参照しているのでは?
|
24
|
+
きっと、ウィンドウが表示された後でなければ、それらは取得できないでしょう。
|
25
|
+
たとえば、このタイミング。
|
26
|
+
|
27
|
+
```java
|
28
|
+
final ScrollPane scrollPane = ...;
|
29
|
+
primaryStage.setScene(new Scene(scrollPane));
|
30
|
+
...
|
31
|
+
primaryStage.addEventHandler(WindowEvent.WINDOW_SHOWN, new EventHandler<WindowEvent>() {
|
32
|
+
@Override
|
33
|
+
public void handle(WindowEvent event) {
|
34
|
+
System.out.println(scrollPane.getChildrenUnmodifiable());
|
35
|
+
}
|
36
|
+
});
|
37
|
+
primaryStage.show();
|
38
|
+
```
|
1
typo
test
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
> viewportがJava上で取得できないし、
|
2
2
|
|
3
3
|
Scenic View https://github.com/JonathanGiles/scenic-view で観察すると、ScrollPaneの子ノードとして、`viewport`というスタイルクラスを持ったStackPaneが存在しています。
|
4
|
-
「おそらく」これがSc
|
4
|
+
「おそらく」これがScrollPaneのviewportです。
|
5
5
|
|
6
6
|
```java
|
7
7
|
final ScrollPane scrollPane = ...;
|
8
8
|
...
|
9
9
|
scrollPane.getChildrenUnmodifiable()
|
10
10
|
.stream()
|
11
|
-
.filter(it -> it.getStyleClass().
|
11
|
+
.filter(it -> it.getStyleClass().contains("viewport"))
|
12
12
|
.forEach(it -> ...));
|
13
13
|
```
|
14
14
|
|