回答編集履歴

1

見直しキャンペーン中

2023/07/23 09:16

投稿

TN8001
TN8001

スコア9862

test CHANGED
@@ -1,211 +1,106 @@
1
1
  > Groupを使えば良いとのことだったのですが、
2
-
3
-
4
2
 
5
3
  JavaFXはあまりわかっていないのですが、`Group`はただグループ化するだけで重なってしまいませんか?
6
4
 
7
-
8
-
9
5
  どういう表示のイメージかわかりませんが、基本的には`ScrollPane`の中に何かしらのレイアウト(`VBox`等)を入れ、その中に`ImageView`や`Text`を入れればいいと思います。
10
6
 
11
-
12
-
13
- ```fxml
7
+ ```xml
14
-
15
8
  <?xml version="1.0" encoding="UTF-8"?>
16
9
 
17
-
18
-
19
10
  <?import javafx.scene.control.Button?>
20
-
21
11
  <?import javafx.scene.control.ScrollPane?>
22
-
23
12
  <?import javafx.scene.image.Image?>
24
-
25
13
  <?import javafx.scene.image.ImageView?>
26
-
27
14
  <?import javafx.scene.layout.BorderPane?>
28
-
29
15
  <?import javafx.scene.layout.VBox?>
30
-
31
16
  <?import javafx.scene.text.Text?>
32
17
 
33
18
 
34
-
35
-
36
-
37
19
  <BorderPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1"
38
-
39
20
  xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
40
-
41
21
  <top>
42
-
43
22
  <Button mnemonicParsing="false" onAction="#onButton" text="add" BorderPane.alignment="CENTER"/>
44
-
45
23
  </top>
46
-
47
24
  <center>
48
-
49
25
  <ScrollPane>
50
-
51
26
  <content>
52
-
53
27
  <VBox fx:id="vbox">
54
-
55
28
  <children>
56
-
57
29
  <ImageView>
58
-
59
30
  <image>
60
-
61
31
  <Image url="https://teratail-v2.storage.googleapis.com/uploads/avatars/u17/171983/5c373ecbfa1165eb_thumbnail.jpeg"/>
62
-
63
32
  </image>
64
-
65
33
  </ImageView>
66
-
67
34
  <Text text="Text"/>
68
-
69
35
  <ImageView>
70
-
71
36
  <image>
72
-
73
37
  <Image url="https://teratail-v2.storage.googleapis.com/uploads/avatars/u13/132786/KnkDDC5A_thumbnail.jpg"/>
74
-
75
38
  </image>
76
-
77
39
  </ImageView>
78
-
79
40
  </children>
80
-
81
41
  </VBox>
82
-
83
42
  </content>
84
-
85
43
  </ScrollPane>
86
-
87
44
  </center>
88
-
89
45
  </BorderPane>
90
-
91
46
  ```
92
47
 
48
+ ```Java
49
+ package sample;
93
50
 
51
+ import javafx.event.ActionEvent;
52
+ import javafx.fxml.FXML;
53
+ import javafx.scene.image.Image;
54
+ import javafx.scene.image.ImageView;
55
+ import javafx.scene.layout.VBox;
56
+ import javafx.scene.text.Text;
57
+
58
+ public class Controller {
59
+ private static final String url1 = "https://teratail-v2.storage.googleapis.com/uploads/avatars/u17/171983/5c373ecbfa1165eb_thumbnail.jpeg";
60
+ private static final String url2 = "https://teratail-v2.storage.googleapis.com/uploads/avatars/u13/132786/KnkDDC5A_thumbnail.jpg";
61
+
62
+ @FXML
63
+ private VBox vbox;
64
+
65
+ @FXML
66
+ void onButton(ActionEvent event) {
67
+ vbox.getChildren().add(new ImageView(new Image(url1)));
68
+ vbox.getChildren().add(new Text("Text"));
69
+ vbox.getChildren().add(new ImageView(new Image(url2)));
70
+ }
71
+ }
72
+ ```
94
73
 
95
74
  ```Java
96
-
97
75
  package sample;
98
76
 
77
+ import javafx.application.Application;
78
+ import javafx.fxml.FXMLLoader;
79
+ import javafx.scene.Parent;
80
+ import javafx.scene.Scene;
81
+ import javafx.stage.Stage;
99
82
 
100
-
101
- import javafx.event.ActionEvent;
102
-
103
- import javafx.fxml.FXML;
104
-
105
- import javafx.scene.image.Image;
106
-
107
- import javafx.scene.image.ImageView;
108
-
109
- import javafx.scene.layout.VBox;
110
-
111
- import javafx.scene.text.Text;
112
-
113
-
114
-
115
- public class Controller {
83
+ public class Main extends Application {
116
-
84
+ @Override
117
- private static final String url1 = "https://teratail-v2.storage.googleapis.com/uploads/avatars/u17/171983/5c373ecbfa1165eb_thumbnail.jpeg";
85
+ public void start(Stage primaryStage) throws Exception {
118
-
119
- private static final String url2 = "https://teratail-v2.storage.googleapis.com/uploads/avatars/u13/132786/KnkDDC5A_thumbnail.jpg";
86
+ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
120
-
121
-
122
-
123
- @FXML
87
+ primaryStage.setScene(new Scene(root, 300, 275));
124
-
125
- private VBox vbox;
88
+ primaryStage.show();
126
-
127
-
128
-
129
- @FXML
130
-
131
- void onButton(ActionEvent event) {
132
-
133
- vbox.getChildren().add(new ImageView(new Image(url1)));
134
-
135
- vbox.getChildren().add(new Text("Text"));
136
-
137
- vbox.getChildren().add(new ImageView(new Image(url2)));
138
-
139
89
  }
140
90
 
91
+ public static void main(String[] args) {
92
+ launch(args);
93
+ }
141
94
  }
142
-
143
95
  ```
144
-
145
-
146
-
147
- ```Java
148
-
149
- package sample;
150
-
151
-
152
-
153
- import javafx.application.Application;
154
-
155
- import javafx.fxml.FXMLLoader;
156
-
157
- import javafx.scene.Parent;
158
-
159
- import javafx.scene.Scene;
160
-
161
- import javafx.stage.Stage;
162
-
163
-
164
-
165
- public class Main extends Application {
166
-
167
- @Override
168
-
169
- public void start(Stage primaryStage) throws Exception {
170
-
171
- Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
172
-
173
- primaryStage.setScene(new Scene(root, 300, 275));
174
-
175
- primaryStage.show();
176
-
177
- }
178
-
179
-
180
-
181
- public static void main(String[] args) {
182
-
183
- launch(args);
184
-
185
- }
186
-
187
- }
188
-
189
- ```
190
-
191
96
  ![アプリ画像](4cbb52d00f9ee24c006d82f1d6461e42.png)
192
-
193
-
194
97
 
195
98
  ---
196
99
 
197
-
198
-
199
100
  > 調べてみたところ、
200
101
 
201
-
202
-
203
102
  調べたことを具体的に提示してください(見たURLや、自分で試したコード等)
204
-
205
103
  「調べましたが」だけでは、第3者には全く伝わりません。
206
104
 
207
-
208
-
209
105
  まだ読んでいなければこちらを一通り目を通してください。
210
-
211
106
  [質問するときのヒント|teratail(テラテイル)](https://teratail.com/help/question-tips)