質問編集履歴
6
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
結果によって異なるメッセージを表示するダイアログを作りたい
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#困っていること
|
2
2
|
|
3
|
-
|
3
|
+
プログラムを作っているのですが、10回ボタンが押されたときにそれまでの勝敗状況に応じて異なるメッセージを表示するダイアログを作りたいのですが、どうすればいいかわかりません。
|
4
4
|
|
5
5
|
|
6
6
|
|
5
変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -298,7 +298,7 @@
|
|
298
298
|
|
299
299
|
if(youcount[0]<comcount[0]){
|
300
300
|
|
301
|
-
int r = JOptionPane.showConfirmDia
|
301
|
+
int r = JOptionPane.showConfirmDialog(
|
302
302
|
|
303
303
|
f,
|
304
304
|
|
@@ -316,7 +316,7 @@
|
|
316
316
|
|
317
317
|
} else if(youcount[0]==comcount[0]) {
|
318
318
|
|
319
|
-
int r = JOptionPane.showConfirmDia
|
319
|
+
int r = JOptionPane.showConfirmDialog(
|
320
320
|
|
321
321
|
f,
|
322
322
|
|
@@ -332,7 +332,7 @@
|
|
332
332
|
|
333
333
|
} else {
|
334
334
|
|
335
|
-
int r = JOptionPane.showConfirmDia
|
335
|
+
int r = JOptionPane.showConfirmDialog(
|
336
336
|
|
337
337
|
f,
|
338
338
|
|
@@ -526,7 +526,7 @@
|
|
526
526
|
|
527
527
|
if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
|
528
528
|
|
529
|
-
int r = JOptionPane.showConfirmDia
|
529
|
+
int r = JOptionPane.showConfirmDialog(
|
530
530
|
|
531
531
|
f,
|
532
532
|
|
4
変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい
|
1
|
+
じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい
|
test
CHANGED
@@ -4,16 +4,6 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
【追記】回答のようにプログラムを書き換えてみましたが、今度はその部分で出たエラーが解決できません。
|
8
|
-
|
9
|
-
エラーメッセージに関しては、該当箇所にコメントで記しています。
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
JOptionPaneに構文エラーがあるとのことですが、何度見ても打ち間違いなどは見当たらなかったのですが・・・
|
14
|
-
|
15
|
-
|
16
|
-
|
17
7
|
#該当のソースコード
|
18
8
|
|
19
9
|
```java
|
@@ -46,7 +36,7 @@
|
|
46
36
|
|
47
37
|
|
48
38
|
|
49
|
-
public class
|
39
|
+
public class A2 {
|
50
40
|
|
51
41
|
JLabel lb1,lb2,lb3,lb4;
|
52
42
|
|
@@ -92,11 +82,11 @@
|
|
92
82
|
|
93
83
|
public static void main(String[] args) {
|
94
84
|
|
95
|
-
new
|
85
|
+
new A2();
|
96
86
|
|
97
87
|
}
|
98
88
|
|
99
|
-
public
|
89
|
+
public A2(){
|
100
90
|
|
101
91
|
|
102
92
|
|
3
変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,6 +10,10 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
+
JOptionPaneに構文エラーがあるとのことですが、何度見ても打ち間違いなどは見当たらなかったのですが・・・
|
14
|
+
|
15
|
+
|
16
|
+
|
13
17
|
#該当のソースコード
|
14
18
|
|
15
19
|
```java
|
2
変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -342,7 +342,7 @@
|
|
342
342
|
|
343
343
|
f,
|
344
344
|
|
345
|
-
"
|
345
|
+
"あなたの負けです。もう一度ゲームをしますか?"
|
346
346
|
|
347
347
|
JOptionPane.YES_NO_OPTION);
|
348
348
|
|
@@ -538,7 +538,11 @@
|
|
538
538
|
|
539
539
|
if(youcount[0]<comcount[0]){
|
540
540
|
|
541
|
-
"あなたの勝ちです。\nもう1度ゲームをしますか?"
|
541
|
+
"あなたの勝ちです。\nもう1度ゲームをしますか?"
|
542
|
+
|
543
|
+
//Yes_NO_OPTIONは解決できないか、フィールドではありません。
|
544
|
+
|
545
|
+
//トークン "JOptionPane"に構文エラーがあります。このトークンを削除してください。
|
542
546
|
|
543
547
|
} else if(youcount[0]==comcount[0]){
|
544
548
|
|
1
変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい
|
1
|
+
じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい 【追記】ダイアログ作成のところでエラーが出る
|
test
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
じゃんけんプログラムを作っているのですが、10回ボタンが押されたときにそれまでの勝敗状況に応じて異なるメッセージを表示するダイアログを作りたいのですが、どうすればいいかわかりません。
|
4
4
|
|
5
|
+
|
6
|
+
|
7
|
+
【追記】回答のようにプログラムを書き換えてみましたが、今度はその部分で出たエラーが解決できません。
|
8
|
+
|
9
|
+
エラーメッセージに関しては、該当箇所にコメントで記しています。
|
10
|
+
|
11
|
+
|
12
|
+
|
5
13
|
#該当のソースコード
|
6
14
|
|
7
15
|
```java
|
@@ -46,6 +54,8 @@
|
|
46
54
|
|
47
55
|
JButton b1,b2,b3,b4;
|
48
56
|
|
57
|
+
JFrame f;
|
58
|
+
|
49
59
|
private String[] img = {"gu2.gif","choki2.gif","pa2.gif"};
|
50
60
|
|
51
61
|
private String[] name = {"グー","チョキ","パー"};
|
@@ -84,7 +94,7 @@
|
|
84
94
|
|
85
95
|
public Repjanken2(){
|
86
96
|
|
87
|
-
|
97
|
+
|
88
98
|
|
89
99
|
JPanel p1,p2,p3,p4,p5,p6,p7;
|
90
100
|
|
@@ -262,7 +272,7 @@
|
|
262
272
|
|
263
273
|
int youhand,comhand,tencount=0;
|
264
274
|
|
265
|
-
tencount += 1;
|
275
|
+
tencount += 1;
|
266
276
|
|
267
277
|
if (source.getText().equals(name[0])) {
|
268
278
|
|
@@ -290,9 +300,239 @@
|
|
290
300
|
|
291
301
|
enzan(two, youcount, comcount, sum, youmes, commes);
|
292
302
|
|
303
|
+
if(tencount==10){
|
304
|
+
|
305
|
+
if(youcount[0]<comcount[0]){
|
306
|
+
|
307
|
+
int r = JOptionPane.showConfirmDiarog(
|
308
|
+
|
309
|
+
f,
|
310
|
+
|
311
|
+
"あなたの勝ちです。もう一度ゲームをしますか?"
|
312
|
+
|
313
|
+
JOptionPane.YES_NO_OPTION); //Yes_NO_OPTIONは解決できないか、フィールドではありません。
|
314
|
+
|
315
|
+
//トークン "JOptionPane"に構文エラーがあります。このトークンを削除してください。
|
316
|
+
|
317
|
+
if (r==1) {
|
318
|
+
|
319
|
+
System.exit(0);
|
320
|
+
|
321
|
+
}
|
322
|
+
|
323
|
+
} else if(youcount[0]==comcount[0]) {
|
324
|
+
|
325
|
+
int r = JOptionPane.showConfirmDiarog(
|
326
|
+
|
327
|
+
f,
|
328
|
+
|
329
|
+
"引き分けです。もう一度ゲームをしますか?"
|
330
|
+
|
331
|
+
JOptionPane.YES_NO_OPTION);
|
332
|
+
|
333
|
+
if (r==1) {
|
334
|
+
|
335
|
+
System.exit(0);
|
336
|
+
|
337
|
+
}
|
338
|
+
|
339
|
+
} else {
|
340
|
+
|
341
|
+
int r = JOptionPane.showConfirmDiarog(
|
342
|
+
|
343
|
+
f,
|
344
|
+
|
345
|
+
"引き分けです。もう一度ゲームをしますか?"
|
346
|
+
|
347
|
+
JOptionPane.YES_NO_OPTION);
|
348
|
+
|
349
|
+
if (r==1) {
|
350
|
+
|
351
|
+
System.exit(0);
|
352
|
+
|
353
|
+
}
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
}
|
358
|
+
|
359
|
+
}
|
360
|
+
|
361
|
+
}
|
362
|
+
|
363
|
+
}
|
364
|
+
|
365
|
+
class Repjankenliset implements ActionListener {
|
366
|
+
|
367
|
+
public void actionPerformed(ActionEvent e){
|
368
|
+
|
369
|
+
lb7.setText("何出すのかな?");
|
370
|
+
|
371
|
+
lb5.setText("");
|
372
|
+
|
373
|
+
lb6.setText("");
|
374
|
+
|
375
|
+
}
|
376
|
+
|
377
|
+
}
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
public void judge(int youhand,int comhand,int two[],int youcount[],int comcount[]){
|
382
|
+
|
383
|
+
if(youhand==comhand){
|
384
|
+
|
385
|
+
lb7.setText("あいこです。");
|
386
|
+
|
387
|
+
two[2] = 1;
|
388
|
+
|
389
|
+
youcount[2] += 1;
|
390
|
+
|
391
|
+
comcount[2] += 1;
|
392
|
+
|
393
|
+
} else if(youhand==0 && comhand==1 ||
|
394
|
+
|
395
|
+
youhand==1 && comhand==2 ||
|
396
|
+
|
397
|
+
youhand==2 && comhand==0){
|
398
|
+
|
399
|
+
lb7.setText("あなたの勝ちです。");
|
400
|
+
|
401
|
+
two[0] = 1;
|
402
|
+
|
403
|
+
youcount[0] += 1;
|
404
|
+
|
405
|
+
comcount[0] += 1;
|
406
|
+
|
407
|
+
} else {
|
408
|
+
|
409
|
+
lb7.setText("あなたの負けです。");
|
410
|
+
|
411
|
+
two[1] = 1;
|
412
|
+
|
413
|
+
youcount[1] += 1;
|
414
|
+
|
415
|
+
comcount[1] += 1;
|
416
|
+
|
417
|
+
}
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
}
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
public void enzan(int two[],int youcount[],int comcount[],int sum,String youmes[],String commes[])
|
426
|
+
|
427
|
+
{
|
428
|
+
|
429
|
+
sum = two[0]+two[1]+two[2];
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
if(sum==1)
|
434
|
+
|
435
|
+
{
|
436
|
+
|
437
|
+
for(int i=0; i<=2; i++)
|
438
|
+
|
439
|
+
{
|
440
|
+
|
441
|
+
if(two[i]==1)
|
442
|
+
|
443
|
+
{
|
444
|
+
|
445
|
+
lb5.setText("あなた"+youcount[i]+youmes[i]);
|
446
|
+
|
447
|
+
lb6.setText("わたし"+comcount[i]+commes[i]);
|
448
|
+
|
449
|
+
}
|
450
|
+
|
451
|
+
}
|
452
|
+
|
453
|
+
}
|
454
|
+
|
455
|
+
else if(sum==2)
|
456
|
+
|
457
|
+
{
|
458
|
+
|
459
|
+
for(int x=0; x<=2; x++)
|
460
|
+
|
461
|
+
{
|
462
|
+
|
463
|
+
for(int y=x+1; y<=2; y++)
|
464
|
+
|
465
|
+
{
|
466
|
+
|
467
|
+
if(two[x]==1 && two[y]==1)
|
468
|
+
|
469
|
+
{
|
470
|
+
|
471
|
+
lb5.setText("あなた"+youcount[x]+youmes[x]+youcount[y]+youmes[y]);
|
472
|
+
|
473
|
+
lb6.setText("わたし"+comcount[x]+commes[x]+comcount[y]+commes[y]);
|
474
|
+
|
475
|
+
}
|
476
|
+
|
477
|
+
}
|
478
|
+
|
479
|
+
}
|
480
|
+
|
481
|
+
}
|
482
|
+
|
483
|
+
else
|
484
|
+
|
485
|
+
{
|
486
|
+
|
487
|
+
lb5.setText("あなた"+youcount[0]+youmes[0]+youcount[1]+youmes[1]+youcount[2]+youmes[2]);
|
488
|
+
|
489
|
+
lb6.setText("わたし"+comcount[1]+commes[1]+comcount[0]+commes[0]+comcount[2]+commes[2]);
|
490
|
+
|
491
|
+
}
|
492
|
+
|
493
|
+
}
|
494
|
+
|
495
|
+
}
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
```
|
510
|
+
|
511
|
+
#プログラム内の変数について
|
512
|
+
|
513
|
+
youcount・・・プレイヤーの勝敗分をカウントする.youcount[0]=勝ち youcount[1]=負け youcount[2]=あいこ
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
comcount・・・コンピュータの勝敗分をカウントする
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
tencount・・・ボタンが押された回数をカウントする。10回押されたらダイアログを表示する。
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
#ダイアログ表示部分
|
526
|
+
|
527
|
+
144~157行目
|
528
|
+
|
529
|
+
この部分をカットして実行するとじゃんけんプログラムをプレイできます。
|
530
|
+
|
531
|
+
```java
|
532
|
+
|
293
|
-
|
533
|
+
if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
|
294
|
-
|
534
|
+
|
295
|
-
int r = JOptionPane.showConfirmDiarog(
|
535
|
+
int r = JOptionPane.showConfirmDiarog(
|
296
536
|
|
297
537
|
f,
|
298
538
|
|
@@ -320,198 +560,4 @@
|
|
320
560
|
|
321
561
|
}
|
322
562
|
|
323
|
-
|
324
|
-
|
325
|
-
}
|
326
|
-
|
327
|
-
}
|
328
|
-
|
329
|
-
class Repjankenliset implements ActionListener {
|
330
|
-
|
331
|
-
public void actionPerformed(ActionEvent e){
|
332
|
-
|
333
|
-
lb7.setText("何出すのかな?");
|
334
|
-
|
335
|
-
lb5.setText("");
|
336
|
-
|
337
|
-
lb6.setText("");
|
338
|
-
|
339
|
-
}
|
340
|
-
|
341
|
-
}
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
public void judge(int youhand,int comhand,int two[],int youcount[],int comcount[]){
|
346
|
-
|
347
|
-
if(youhand==comhand){
|
348
|
-
|
349
|
-
lb7.setText("あいこです。");
|
350
|
-
|
351
|
-
two[2] = 1;
|
352
|
-
|
353
|
-
youcount[2] += 1;
|
354
|
-
|
355
|
-
comcount[2] += 1;
|
356
|
-
|
357
|
-
} else if(youhand==0 && comhand==1 ||
|
358
|
-
|
359
|
-
youhand==1 && comhand==2 ||
|
360
|
-
|
361
|
-
youhand==2 && comhand==0){
|
362
|
-
|
363
|
-
lb7.setText("あなたの勝ちです。");
|
364
|
-
|
365
|
-
two[0] = 1;
|
366
|
-
|
367
|
-
youcount[0] += 1;
|
368
|
-
|
369
|
-
comcount[0] += 1;
|
370
|
-
|
371
|
-
} else {
|
372
|
-
|
373
|
-
lb7.setText("あなたの負けです。");
|
374
|
-
|
375
|
-
two[1] = 1;
|
376
|
-
|
377
|
-
youcount[1] += 1;
|
378
|
-
|
379
|
-
comcount[1] += 1;
|
380
|
-
|
381
|
-
}
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
}
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
public void enzan(int two[],int youcount[],int comcount[],int sum,String youmes[],String commes[])
|
390
|
-
|
391
|
-
{
|
392
|
-
|
393
|
-
sum = two[0]+two[1]+two[2];
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
if(sum==1)
|
398
|
-
|
399
|
-
{
|
400
|
-
|
401
|
-
for(int i=0; i<=2; i++)
|
402
|
-
|
403
|
-
{
|
404
|
-
|
405
|
-
if(two[i]==1)
|
406
|
-
|
407
|
-
{
|
408
|
-
|
409
|
-
lb5.setText("あなた"+youcount[i]+youmes[i]);
|
410
|
-
|
411
|
-
lb6.setText("わたし"+comcount[i]+commes[i]);
|
412
|
-
|
413
|
-
}
|
414
|
-
|
415
|
-
}
|
416
|
-
|
417
|
-
}
|
418
|
-
|
419
|
-
else if(sum==2)
|
420
|
-
|
421
|
-
{
|
422
|
-
|
423
|
-
for(int x=0; x<=2; x++)
|
424
|
-
|
425
|
-
{
|
426
|
-
|
427
|
-
for(int y=x+1; y<=2; y++)
|
428
|
-
|
429
|
-
{
|
430
|
-
|
431
|
-
if(two[x]==1 && two[y]==1)
|
432
|
-
|
433
|
-
{
|
434
|
-
|
435
|
-
lb5.setText("あなた"+youcount[x]+youmes[x]+youcount[y]+youmes[y]);
|
436
|
-
|
437
|
-
lb6.setText("わたし"+comcount[x]+commes[x]+comcount[y]+commes[y]);
|
438
|
-
|
439
|
-
}
|
440
|
-
|
441
|
-
}
|
442
|
-
|
443
|
-
}
|
444
|
-
|
445
|
-
}
|
446
|
-
|
447
|
-
else
|
448
|
-
|
449
|
-
{
|
450
|
-
|
451
|
-
lb5.setText("あなた"+youcount[0]+youmes[0]+youcount[1]+youmes[1]+youcount[2]+youmes[2]);
|
452
|
-
|
453
|
-
lb6.setText("わたし"+comcount[1]+commes[1]+comcount[0]+commes[0]+comcount[2]+commes[2]);
|
454
|
-
|
455
|
-
}
|
456
|
-
|
457
|
-
}
|
458
|
-
|
459
|
-
}
|
460
|
-
|
461
|
-
|
462
|
-
|
463
563
|
```
|
464
|
-
|
465
|
-
#プログラム内の変数について
|
466
|
-
|
467
|
-
youcount・・・プレイヤーの勝敗分をカウントする.youcount[0]=勝ち youcount[1]=負け youcount[2]=あいこ
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
comcount・・・コンピュータの勝敗分をカウントする
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
tencount・・・ボタンが押された回数をカウントする。10回押されたらダイアログを表示する。
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
#ダイアログ表示部分
|
480
|
-
|
481
|
-
144~157行目
|
482
|
-
|
483
|
-
この部分をカットして実行するとじゃんけんプログラムをプレイできます。
|
484
|
-
|
485
|
-
```java
|
486
|
-
|
487
|
-
if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
|
488
|
-
|
489
|
-
int r = JOptionPane.showConfirmDiarog(
|
490
|
-
|
491
|
-
f,
|
492
|
-
|
493
|
-
if(youcount[0]<comcount[0]){
|
494
|
-
|
495
|
-
"あなたの勝ちです。\nもう1度ゲームをしますか?"
|
496
|
-
|
497
|
-
} else if(youcount[0]==comcount[0]){
|
498
|
-
|
499
|
-
"引き分けです。\nもう1度ゲームをしますか?"
|
500
|
-
|
501
|
-
} else {
|
502
|
-
|
503
|
-
"あなたの負けです。\nもう1度ゲームをしますか?"
|
504
|
-
|
505
|
-
}
|
506
|
-
|
507
|
-
JOptionPane.YES_NO_OPTION);
|
508
|
-
|
509
|
-
if (r==1) {
|
510
|
-
|
511
|
-
System.exit(0);
|
512
|
-
|
513
|
-
}
|
514
|
-
|
515
|
-
}
|
516
|
-
|
517
|
-
```
|