回答編集履歴

4

質問に対する純粋な返答がなかったので

2017/07/18 16:58

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,6 +1,48 @@
1
+ バグだけ取るならこうすれば良いです。
2
+
3
+ "プログラムの気持ちになって"処理を追えば、なぜ思い通りにならないかわかると思います。
4
+
5
+ ```Java
6
+
7
+ public void actionPerformed(ActionEvent e) {
8
+
9
+ if(flag==1) {
10
+
11
+ ImageIcon icon = new ImageIcon("./maru32.png");
12
+
13
+ jb.setIcon(icon);
14
+
15
+ jb.setText("まる");
16
+
17
+ flag=2;
18
+
19
+ }
20
+
21
+ else if(flag==2) {
22
+
23
+ ImageIcon icon = new ImageIcon("./peke32.png");
24
+
25
+ jb.setIcon(icon);
26
+
27
+ jb.setText("ぺけ");
28
+
29
+ flag=1;
30
+
31
+ }
32
+
33
+ }
34
+
35
+ ```
36
+
37
+
38
+
39
+ 本題
40
+
41
+ ---
42
+
1
43
  コード全体の設計の話は[前回](https://teratail.com/questions/84164)したので、ロジック部分だけ。
2
44
 
3
- 私ならこう書きます。
45
+ 私ならこう書きます。(拡張性のあまりないコードですが)
4
46
 
5
47
  ```Java
6
48
 
@@ -58,7 +100,7 @@
58
100
 
59
101
  MainTextクラスは即興で作ったので、まだまだ改善の余地があると思います。
60
102
 
61
- 文字列を配列で管理するとかね。→追記しました。
103
+ 文字列を配列で管理するとかね。**→追記しました。**
62
104
 
63
105
 
64
106
 

3

リンクを張ったよ

2017/07/18 16:58

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,4 +1,4 @@
1
- コード全体の設計の話は前回したので、ロジック部分だけ。
1
+ コード全体の設計の話は[前回](https://teratail.com/questions/84164)したので、ロジック部分だけ。
2
2
 
3
3
  私ならこう書きます。
4
4
 

2

追記追記

2017/07/18 15:30

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -94,6 +94,8 @@
94
94
 
95
95
  ```Java
96
96
 
97
+ private MainText mainText = new MainText();
98
+
97
99
  private class MainText {
98
100
 
99
101
  private String[] centerText = {"まる", "ばつ"};
@@ -110,6 +112,18 @@
110
112
 
111
113
  }
112
114
 
115
+
116
+
117
+ public class CenterButtonListener implements ActionListener {
118
+
119
+ public void actionPerformed(ActionEvent e) {
120
+
121
+ centerButton.setText(mainText.getNextText());
122
+
123
+ }
124
+
125
+ }
126
+
113
127
  ```
114
128
 
115
129
 

1

追記

2017/07/18 15:25

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  MainTextクラスは即興で作ったので、まだまだ改善の余地があると思います。
60
60
 
61
- 文字列を配列で管理するとかね。
61
+ 文字列を配列で管理するとかね。→追記しました。
62
62
 
63
63
 
64
64
 
@@ -83,3 +83,35 @@
83
83
  ご提示のコードだと、フラグはクラス内のどこからでも操作出来てしまうので、
84
84
 
85
85
  予想通りの挙動を見せないときに、プログラムを端から端まで舐める作業が生じてしまいます。
86
+
87
+
88
+
89
+ 追記
90
+
91
+ ---
92
+
93
+ こっちの方がクールかな。
94
+
95
+ ```Java
96
+
97
+ private class MainText {
98
+
99
+ private String[] centerText = {"まる", "ばつ"};
100
+
101
+ private int nowText = 0;
102
+
103
+
104
+
105
+ private String getNextText() {
106
+
107
+ return centerText[nowText++ % centerText.length];
108
+
109
+ }
110
+
111
+ }
112
+
113
+ ```
114
+
115
+
116
+
117
+ クラスが小規模なので、こういうときは数値で管理するのはありですかね。