質問編集履歴

2

タイトルも前の書いた文章になっていた為

2021/06/22 13:11

投稿

pea-cap
pea-cap

スコア4

test CHANGED
@@ -1 +1 @@
1
- Threadのjoin()を使うと別スレッド動かす前のプログラムが一部動かない。
1
+ Threadのjoin()別スレッド動かす前のプログラムが一部反映されない。
test CHANGED
@@ -24,6 +24,12 @@
24
24
 
25
25
  追伸しました。
26
26
 
27
+ タイトルも…前のになっていたので追伸
28
+
29
+ 動かない → 一部反映されない
30
+
31
+
32
+
27
33
 
28
34
 
29
35
  ##試した事

1

投稿できず、再度投稿したら前の文章になったので

2021/06/22 13:11

投稿

pea-cap
pea-cap

スコア4

test CHANGED
File without changes
test CHANGED
@@ -12,94 +12,126 @@
12
12
 
13
13
 
14
14
 
15
+ ###追伸
16
+
17
+ Teratailの投稿ボタンを押す → 何故か投稿できず
18
+
19
+ そのまま再度投稿すると、かなり前の文章になってしまいました。(何故?)
20
+
21
+ その為、編集前の文章で見ていたらごめんなさい。
22
+
23
+
24
+
25
+ 追伸しました。
26
+
27
+
28
+
29
+ ##試した事
30
+
31
+ ボタン1は画面移行をする前に待機パネル(白)を表示させて
32
+
33
+ 別スレッドで処理させています。処理順でパネル(黒)になります。
34
+
35
+
36
+
37
+ ボタン2は、別スレッドで動かしている間に、メインスレッドのプログラムが
38
+
39
+ 動くか試しています。待機パネル(白)、時間が掛かりパネル変更(緑)
40
+
41
+ になりました。
42
+
43
+
44
+
45
+ ボタン3はボタン2とは違い、join()によって別スレッドが終わるまで
46
+
47
+ 待機してから(黄)最後に待機パネル(白)が表示されました。
48
+
49
+ (黄)は早すぎるのか見えないけど…
50
+
51
+ joinが原因かもしれません…
52
+
53
+
54
+
55
+ ボタン4は、join()メソッドによって別スレッドの処理が全部終わるまで
56
+
57
+ 終了されないか試しました。
58
+
59
+
60
+
61
+ ##実現したい事
62
+
63
+
64
+
65
+ ここまでは自分の思う挙動範囲でした。しかし
66
+
67
+
68
+
69
+ ボタン5は、start()メソッド手前で白に背景を変えているのに
70
+
71
+ 何故か変更されませんでした。
72
+
73
+ Class Eの方のpinkを外すと
74
+
75
+ 別スレッドが終了してから白背景になりました。
76
+
77
+
78
+
79
+ 別スレッドが起動前だから、起動前にパネルは白になるはず…
80
+
81
+ と思っていたのですが…
82
+
83
+
84
+
85
+ 待機画面を出現させて、全部読み込ませてから
86
+
87
+ 背景含め表示させたいと思っているので困っています。
88
+
89
+
90
+
91
+ ##試した事
92
+
93
+ 大変申し訳ないのですが、スレッドについて勉強中です。
94
+
95
+ とても簡素にして、挙動その物が合っているか試したのが
96
+
97
+ 下記ソースコードとボタン1~4です。
98
+
99
+
100
+
101
+ ゲームで待機画面を出現させて、全部読み込ませてから
102
+
103
+ 背景含め表示させようとしたのがボタン5です。
104
+
105
+
106
+
107
+ ①別スレッドでなら背景色が変更になるか試す。
108
+
109
+ 別スレッド内に記載したがならなかった。
110
+
111
+ ②JFrameがそもそも変更できるかsetSizeを試す。
112
+
113
+ joinなし → 拡大後、背景が白→黒になる。
114
+
115
+ joinあり → 拡大後、背景変わらず、拡大した部分は黒くなり
116
+
117
+ 拡大した部分を含めて背景色がピンクになる。
118
+
119
+
120
+
121
+ joinが原因なのは分かりました。
122
+
123
+ しかし、何故joinがこのような挙動をするか分かりません。
124
+
125
+ また、解決方法も教えて頂けたらと思っています。
126
+
127
+
128
+
129
+
130
+
131
+ ソースコードです。
132
+
15
133
  ---
16
134
 
17
-
18
-
19
- ボタン1は画面移行をする前に待機パネル(白)を表示させて
20
-
21
- 別スレッドで処理させています。処理順でパネル(黒)になります。
22
-
23
-
24
-
25
- ボタン2は、別スレッドで動かしている間に、メインスレッドのプログラムが
26
-
27
- 動くか試しています。待機パネル(白)、時間が掛かりパネル変更(緑)
28
-
29
- になりました。
30
-
31
-
32
-
33
- ボタン3はボタン2とは違い、join()によって別スレッドが終わるまで
34
-
35
- 待機してから(黄)最後に待機パネル(白)が表示されました。
36
-
37
- (黄)は早すぎるのか見えないけど…
38
-
39
-
40
-
41
- ボタン4は、join()メソッドによって別スレッドの処理が全部終わるまで
42
-
43
- 終了されないか試しました。
44
-
45
-
46
-
47
- ---
48
-
49
-
50
-
51
- ここまでは自分の思う挙動範囲でした。しかし
52
-
53
-
54
-
55
- ボタン5は、start()メソッド手前で白に背景を変えているのに
56
-
57
- 何故か変更されませんでした。
58
-
59
- Class Eの方のpinkを外すと
60
-
61
- 別スレッドが終了してから白背景になりました。
62
-
63
-
64
-
65
- 別スレッドが起動前だから、起動前にパネルは白になるはず…
66
-
67
- と思っていたのですが…
68
-
69
-
70
-
71
- 待機画面を出現させて、全部読み込ませてから
72
-
73
- 背景含め表示させたいと思っているので困っています。
74
-
75
-
76
-
77
- ##試した事
78
-
79
- 大変申し訳ないのですが、スレッドについて勉強中です。
80
-
81
- とても簡素にして、挙動その物が合っているか試したのが
82
-
83
- 下記ソースコードとボタン1~4です。
84
-
85
-
86
-
87
- ゲームで待機画面を出現させて、全部読み込ませてから
88
-
89
- 背景含め表示させようとしたのがボタン5です。
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
- ソースコードです。
100
-
101
- ---
102
-
103
135
  ```java
104
136
 
105
137
  import java.awt.Color;