質問編集履歴

2

ソースコードの変更、質問の追加

2018/07/16 17:30

投稿

mcdonald-mos
mcdonald-mos

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
1
  java プログラミング 以下の問題をやっているのですが全然わかりません。特にわからないのは2次元配列の中0か一の値を入れて初期化するところです。どなたかわかる方はいらしゃらないでしょうか。。。。 
2
+
3
+
2
4
 
3
5
 
4
6
 
@@ -8,13 +10,17 @@
8
10
 
9
11
  7×8の大きさの2次元配列を宣言して,整数0または1でランダムに初期化する.その上で,図2のように,配列の大きさ7×8に対応させて,横7×縦8のマス(7×8個の正方形)を描くプログラムを作成しなさい.マスを塗りつぶす色は,対応する配列の要素が0であれば黒色,1であれば緑色に設定すること.また,テキストフィールドにマスを指定するための(x,y)が入力され,Actionボタンが押された場合,図3のように該当するマスの色を反転できるようにすること.![![イメージ説明](b033e689ec61e8de6d3261b2871003ae.png)](2980a2e7d0ef938038eee4cdd6daec35.png)
10
12
 
13
+ 追記
14
+
11
- まだ途中まかできてないのですが問題はvoid paint 内部分でランダム配列中に0か1入れたつもりなのですが実行してみると緑一色にしらなくて困ってます。
15
+ 二次元配列のなかみをランダム1に初期化することはできのですがそのあとの後半の問題文「actionボタンが押された場合、図3よう該当するマス反転きるようにする」の部分がよくわからないです。javaアプレットに詳しい方、よろしければ助言をいただけないでしょうか
12
16
 
13
17
  ```java
14
18
 
15
19
 
16
20
 
17
21
  import java.awt.*;
22
+
23
+
18
24
 
19
25
  import java.applet.*;
20
26
 
@@ -34,7 +40,15 @@
34
40
 
35
41
  Button action;
36
42
 
43
+ Random rnd = new Random();
37
44
 
45
+
46
+
47
+
48
+
49
+
50
+
51
+
38
52
 
39
53
  int[][] masu = new int [7][8];
40
54
 
@@ -84,9 +98,9 @@
84
98
 
85
99
  for(int j=0; j<masu[1].length; j++) {
86
100
 
87
- int r = new Random().nextInt(1);
101
+ int r =rnd.nextInt(2);
88
102
 
89
- int l = new Random().nextInt(1);
103
+
90
104
 
91
105
  masu[i][j] =r;
92
106
 
@@ -94,11 +108,11 @@
94
108
 
95
109
  if(masu[i][j]==0) {
96
110
 
97
- g.setColor(Color.green);
111
+ g.setColor(Color.black);
98
112
 
99
113
  }else if(masu[i][j]==1) {
100
114
 
101
- g.setColor(Color.black);
115
+ g.setColor(Color.green);
102
116
 
103
117
  }
104
118
 
@@ -128,21 +142,25 @@
128
142
 
129
143
  public void actionPerformed(ActionEvent e) {
130
144
 
131
-
145
+ int x= Integer.parseInt(yoko.getText());
146
+
147
+ int y= Integer.parseInt(tate.getText());
132
148
 
133
149
 
134
150
 
151
+ if(masu[x][y]==0) {
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ }
160
+
161
+
162
+
135
163
  }
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
164
 
147
165
 
148
166
 
@@ -150,4 +168,6 @@
150
168
 
151
169
 
152
170
 
171
+
172
+
153
173
  ```

1

ソースコードの追加

2018/07/16 17:29

投稿

mcdonald-mos
mcdonald-mos

スコア8

test CHANGED
File without changes
test CHANGED
@@ -7,3 +7,147 @@
7
7
 
8
8
 
9
9
  7×8の大きさの2次元配列を宣言して,整数0または1でランダムに初期化する.その上で,図2のように,配列の大きさ7×8に対応させて,横7×縦8のマス(7×8個の正方形)を描くプログラムを作成しなさい.マスを塗りつぶす色は,対応する配列の要素が0であれば黒色,1であれば緑色に設定すること.また,テキストフィールドにマスを指定するための(x,y)が入力され,Actionボタンが押された場合,図3のように該当するマスの色を反転できるようにすること.![![イメージ説明](b033e689ec61e8de6d3261b2871003ae.png)](2980a2e7d0ef938038eee4cdd6daec35.png)
10
+
11
+ まだ途中までしかできてないのですが問題はvoid paint 内の部分でランダムに配列の中に0か1を入れたつもりなのですが実行してみると緑一色にしかならなくて困ってます。
12
+
13
+ ```java
14
+
15
+
16
+
17
+ import java.awt.*;
18
+
19
+ import java.applet.*;
20
+
21
+ import java.awt.event.*; //(1)
22
+
23
+ import java.util.Random;
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+ public class Program2Lesson8 extends Applet implements ActionListener{
32
+
33
+ TextField yoko,tate;
34
+
35
+ Button action;
36
+
37
+
38
+
39
+ int[][] masu = new int [7][8];
40
+
41
+
42
+
43
+
44
+
45
+ public void init() {
46
+
47
+ yoko = new TextField("",4);
48
+
49
+ yoko.addActionListener(this);
50
+
51
+ add(yoko);
52
+
53
+
54
+
55
+ tate = new TextField("",4);
56
+
57
+ tate.addActionListener(this);
58
+
59
+ add(tate);
60
+
61
+
62
+
63
+ action = new Button("Action");
64
+
65
+ action.addActionListener(this);
66
+
67
+ add(action);
68
+
69
+
70
+
71
+
72
+
73
+ }
74
+
75
+
76
+
77
+ public void paint (Graphics g) {
78
+
79
+
80
+
81
+ for(int i=0; i<masu.length;i++) {
82
+
83
+
84
+
85
+ for(int j=0; j<masu[1].length; j++) {
86
+
87
+ int r = new Random().nextInt(1);
88
+
89
+ int l = new Random().nextInt(1);
90
+
91
+ masu[i][j] =r;
92
+
93
+
94
+
95
+ if(masu[i][j]==0) {
96
+
97
+ g.setColor(Color.green);
98
+
99
+ }else if(masu[i][j]==1) {
100
+
101
+ g.setColor(Color.black);
102
+
103
+ }
104
+
105
+ g.fillRect(50+20*j, 100+20*i, 20, 20);
106
+
107
+ }
108
+
109
+
110
+
111
+
112
+
113
+ }
114
+
115
+ }
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+ public void actionPerformed(ActionEvent e) {
130
+
131
+
132
+
133
+
134
+
135
+ }
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+ }
150
+
151
+
152
+
153
+ ```