質問編集履歴

4

質問を少しまとめてみました。

2020/12/16 09:14

投稿

cretter
cretter

スコア91

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で0.01秒おきに右側に移動させるようにして、赤が進むようになっています。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。つまり、赤が進んでいるように見えません。理想は、`for`文の途中で毎回赤を表示させて赤が移動して進んでいるように見えるようにしたいです。どうすれば`for`が終了した状態で表示されるのではなく`for`の途中で毎回表示できるようになりますか。
3
+ `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で0.01秒おきに右側に移動させるようにして、赤が進むようになっています。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。つまり、赤が進んでいるように見えません。理想は、`for`文の途中で毎回赤を表示させて赤が移動して進んでいるように見えるようにしたいです。ソースコード`2`がいい例でこれだと`for`の途中でも表示されます。どうすれば`1`で`for`が終了した状態で表示されるのではなく`2`のように`for`の途中で毎回表示できるようになりますか。
4
4
 
5
5
  簡単なサンプルコードもお願いします。
6
6
 
@@ -10,7 +10,9 @@
10
10
 
11
11
 
12
12
 
13
+ ```1
14
+
13
- ```javaimport javax.swing.*;
15
+ import javax.swing.*;
14
16
 
15
17
  import java.awt.*;
16
18
 
@@ -146,6 +148,64 @@
146
148
 
147
149
  ```
148
150
 
151
+ ```2
152
+
153
+ import javax.swing.*;
154
+
155
+ import java.awt.*;
156
+
157
+ public class test01 extends JFrame{
158
+
159
+ public static void main(String[] args){
160
+
161
+ test01 f = new test01();
162
+
163
+ }
164
+
165
+ test01(){
166
+
167
+ setBounds(100,100,500,500);
168
+
169
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
170
+
171
+ getContentPane().setBackground(Color.WHITE);
172
+
173
+ setLayout(null);
174
+
175
+ setVisible(true);
176
+
177
+
178
+
179
+ JPanel panel = new JPanel();
180
+
181
+ panel.setBackground(Color.RED);
182
+
183
+ panel.setBounds(100,100,10,10);
184
+
185
+ add(panel);
186
+
187
+
188
+
189
+ while(true){
190
+
191
+ try{System.in.read();}catch(Exception e){}
192
+
193
+ for(int i=0;i<500;i++){
194
+
195
+ panel.setBounds(i,100,10,10);
196
+
197
+ try{Thread.sleep(10);}catch(Exception e){}
198
+
199
+ }
200
+
201
+ }
202
+
203
+ }
204
+
205
+ }
206
+
207
+ ```
208
+
149
209
  ### 補足情報(FW/ツールのバージョンなど)
150
210
 
151
211
  java jdk-14.0.2

3

質問とソースコードを更新しました。

2020/12/16 09:14

投稿

cretter
cretter

スコア91

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で0.01秒おきに右側に移動させるようにして、赤が進むようになっています。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。理想は、`for`文の途中で毎回を表示させて赤が移動しているようにしたいです。どうすれば`for`が終了した状態で表示されるのではなく`for`の途中で毎回表示できるようになりますか。
3
+ `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で0.01秒おきに右側に移動させるようにして、赤が進むようになっています。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。つまり、赤が進んでいるように見えません。理想は、`for`文の途中で毎回を表示させて赤が移動して進んでいるように見えるようにしたいです。どうすれば`for`が終了した状態で表示されるのではなく`for`の途中で毎回表示できるようになりますか。
4
4
 
5
5
  簡単なサンプルコードもお願いします。
6
6
 

2

質問とソースコードを更新しました。

2020/12/15 13:00

投稿

cretter
cretter

スコア91

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で秒おきに右側に移動させるようになっいます。最終的には間隔をもっと短くして赤が移動しているようにしたす。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。これを赤が移動しているようにしてシューティングゲームを作りたいですどうすればいいしょうか。
3
+ `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で0.01秒おきに右側に移動させるようにて、赤が進むようになってす。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。理想は、`for`文の途中で毎回球表示させて赤が移動しているようにしたいですどうすれば`for`が終了した状態表示されるのではなく`for`の途中で毎回表示できるよになりますか。
4
4
 
5
5
  簡単なサンプルコードもお願いします。
6
6
 
@@ -10,9 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- ```java
14
-
15
- import javax.swing.*;
13
+ ```javaimport javax.swing.*;
16
14
 
17
15
  import java.awt.*;
18
16
 
@@ -108,13 +106,17 @@
108
106
 
109
107
  case KeyEvent.VK_SPACE://スペースキー
110
108
 
111
- for(int i=0;i<350;i+=50){//赤を右移動
109
+ for(int i=x;i<x+350;i+=10){
110
+
111
+ ball.setVisible(false);
112
112
 
113
113
  ball.setBounds(i,y,10,10);
114
114
 
115
+ ball.setVisible(true);
116
+
115
117
  try{
116
118
 
117
- Thread.sleep(1000);
119
+ Thread.sleep(1);
118
120
 
119
121
  }catch(Exception a){
120
122
 

1

質問を追加しました。

2020/12/15 12:58

投稿

cretter
cretter

スコア91

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  `JFrame`内で`space`を押すと赤色の`JPanel`を一定間隔で一秒おきに右側に移動させるようになっています。最終的には、間隔をもっと短くして赤が移動しているようにしたいです。しかし、実際に`space`を押すと下のコードの赤を進ませる`for`文が終了した状態で赤が表示されています。これを赤が移動しているようにしてシューティングゲームを作りたいのですがどうすればいいでしょうか。
4
+
5
+ 簡単なサンプルコードもお願いします。
4
6
 
5
7
 
6
8