java プログラミング 以下の問題をやっているのですが全然わかりません。特にわからないのは2次元配列の中0か一の値を入れて初期化するところです。どなたかわかる方はいらしゃらないでしょうか。。。。
7×8の大きさの2次元配列を宣言して,整数0または1でランダムに初期化する.その上で,図2のように,配列の大きさ7×8に対応させて,横7×縦8のマス(7×8個の正方形)を描くプログラムを作成しなさい.マスを塗りつぶす色は,対応する配列の要素が0であれば黒色,1であれば緑色に設定すること.また,テキストフィールドにマスを指定するための(x,y)が入力され,Actionボタンが押された場合,図3のように該当するマスの色を反転できるようにすること.
追記
二次元配列のなかみをランダムで0か1に初期化することはできたのですがそのあとの後半の問題文「actionボタンが押された場合、図3のように該当するマスの色を反転できるようにすること」の部分がよくわからないです。javaアプレットに詳しい方、よろしければ助言をいただけないでしょうか
java
1 2import java.awt.*; 3 4import java.applet.*; 5import java.awt.event.*; //(1) 6import java.util.Random; 7 8 9 10public class Program2Lesson8 extends Applet implements ActionListener{ 11TextField yoko,tate; 12Button action; 13Random rnd = new Random(); 14 15 16 17 18int[][] masu = new int [7][8]; 19 20 21public void init() { 22 yoko = new TextField("",4); 23 yoko.addActionListener(this); 24 add(yoko); 25 26 tate = new TextField("",4); 27 tate.addActionListener(this); 28 add(tate); 29 30 action = new Button("Action"); 31 action.addActionListener(this); 32 add(action); 33 34 35 } 36 37 public void paint (Graphics g) { 38 39 for(int i=0; i<masu.length;i++) { 40 41 for(int j=0; j<masu[1].length; j++) { 42 int r =rnd.nextInt(2); 43 44 masu[i][j] =r; 45 46 if(masu[i][j]==0) { 47 g.setColor(Color.black); 48 }else if(masu[i][j]==1) { 49 g.setColor(Color.green); 50 } 51 g.fillRect(50+20*j, 100+20*i, 20, 20); 52 } 53 54 55 } 56 } 57 58 59 60 61 62 63public void actionPerformed(ActionEvent e) { 64 int x= Integer.parseInt(yoko.getText()); 65 int y= Integer.parseInt(tate.getText()); 66 67 if(masu[x][y]==0) { 68 69 70 71 } 72 73} 74 75} 76 77
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/17 12:47
2018/07/17 13:50