JAVAでプログラミングをしています。
X,Y座標をテキストボックスに入力し追加ボタンを押すと、縦横50の正方形を描くものです。
ただし正方形の始点の座標は、2次元配列を用いることと、既に存在する正方形と衝突する場合は、「すでに存在する正方形と衝突します」と表示します。
全くうまく動かないので、どこかおかしなところがあればご教示願います。
エラーは出ないのですが、テキストフィールドと追加ボタンが表示されるだけです。
よろしくお願いします。
以下、プログラムです。
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Prog2Lec10Subject02 extends Applet implements ActionListener{
TextField tf1,tf2;
Button additionButton;
int x,y,i,j; int[][] zahyou; String operations = ""; public void init(){ i=j=0; zahyou = new int[1000][2]; additionButton = new Button("追加"); additionButton.addActionListener(this); add(additionButton); add(new Label("x座標")); tf1 = new TextField("",5); tf1.addActionListener(this); add(tf1); add(new Label("y座標")); tf2 = new TextField("",5); tf2.addActionListener(this); add(tf2); } public void actionPerformed(ActionEvent e){ if(e.getSource() == additionButton) { x = Integer.parseInt(tf1.getText()); y = Integer.parseInt(tf2.getText()); zahyou[0][i] =x; zahyou[1][i] =y; } } public void update(Graphics g){ paint(g); g.drawString(operations, 200, 40); if(isCollision() == false){ g.setColor(Color.RED); g.fillRect(x,y, 50, 50); operations = ""; i++; } else if(isCollision() == true){ operations = "その正方形は衝突しています"; } } public boolean isCollision(){ for(int j=0; i>j; j++); if(zahyou[0][i] >zahyou[0][j] && zahyou[0][i] <zahyou[0][j]+50 && zahyou[1][i] >zahyou[1][j] && zahyou[1][i]<zahyou[1][j]+50) return true; else{ return false; } }
}
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー