質問するログイン新規登録

回答編集履歴

2

typo2

2021/02/08 12:54

投稿

退会済みユーザー
answer CHANGED
@@ -41,7 +41,7 @@
41
41
  こちらもメインスレッドを止めるだけなので使えない。ScheduledExecutorService等を使う必要がある。
42
42
 
43
43
  `for (int i = 3; i > 0; i--) { … }`
44
- 前述2つの指摘により、そもそもforループは使えないので、発想をえる必要がある。
44
+ 前述2つの指摘により、そもそもforループは使えないので、発想をえる必要がある。
45
45
  `ScheduledExecutorService`は実行する処理クラスに`Runnable`を使えるので、これを`implements`した実行クラスを作ればいい。(まあ、匿名インナークラスでもいいけど)
46
46
 
47
47
  ### 3.2. ScheduledExecutorServiceを使う場合

1

typo

2021/02/08 12:54

投稿

退会済みユーザー
answer CHANGED
@@ -7,7 +7,8 @@
7
7
  [JavaFXにおけるスレッドの扱い - 軽Lab](http://krr.blog.shinobi.jp/javafx/javafx%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%AE%E6%89%B1%E3%81%84)
8
8
 
9
9
  メインスレッドを止めてしまう`Thread.sleep()`により、メインスレッドが止まっている事、それから画面更新は処理を抜けてアイドル状態を作らないと起こらないらしい事。
10
+ つまりこの仕様のせいで**ラベルのテキストが更新されていなかった**という事。
10
- 打開するには、空き時間にメインスレッドで遅延更新をする`Platform.runLater()`を上手く使う事。
11
+ 打開するには、空き時間にメインスレッドで遅延更新をする`Platform#runLater()`を上手く使う事。
11
12
 
12
13
  ## 2. ポイント2. Threadの代わりにどうやってタイマー処理をするのか
13
14
  [ScheduledExecutorService 使い方メモ](https://qiita.com/opengl-8080/items/ee8e926cf75e4d6058a2)