回答編集履歴
1
コードの間違いを修正
answer
CHANGED
@@ -37,27 +37,30 @@
|
|
37
37
|
```java
|
38
38
|
void buttonStartPressed() {
|
39
39
|
if (rb1.isSelected()) {
|
40
|
-
Thread thread = new Thread(
|
40
|
+
Thread thread = new Thread() {
|
41
|
+
@Override
|
42
|
+
public void run() {
|
41
|
-
|
43
|
+
Platform.runLater(() -> textArea.appendText("first\n"));
|
42
|
-
|
44
|
+
// for文をforEachに変更しています。Platform.runLaterで用いるlambda式から
|
43
|
-
|
45
|
+
// ループの制御変数iを参照するにはiがfinalでなくてはならず、forループが使いにくいからです
|
44
|
-
|
46
|
+
IntStream.range(0, 4).forEach(i -> {
|
45
|
-
|
47
|
+
try {
|
46
|
-
|
48
|
+
sleep(1000);
|
47
|
-
|
49
|
+
} catch (InterruptedException e) {
|
48
|
-
|
50
|
+
e.printStackTrace(); // デバッグ用
|
49
|
-
|
51
|
+
}
|
50
|
-
|
52
|
+
Platform.runLater(() -> textArea.appendText("line" + i + "\n"));
|
51
|
-
|
53
|
+
});
|
52
|
-
|
54
|
+
Platform.runLater(() -> textArea.appendText("last\n"));
|
53
|
-
|
55
|
+
Platform.runLater(() -> {
|
54
|
-
|
56
|
+
try {
|
55
|
-
|
57
|
+
join();
|
56
|
-
|
58
|
+
} catch (InterruptedException e) {
|
57
|
-
|
59
|
+
e.printStackTrace(); // デバッグ用
|
58
|
-
|
60
|
+
}
|
59
|
-
|
61
|
+
});
|
62
|
+
}
|
60
|
-
}
|
63
|
+
};
|
61
64
|
thread.start();
|
62
65
|
}
|
63
66
|
}
|