前提・実現したいこと
ウィンドウ内を赤いボールが動き回るプログラムを作りました。
でも今一つ納得が出来ません。
当初、2つの★印の位置に繰り返し(ここではfor・・・)を入れないとボールが
動き回らないと思ってましたが、実際には下記のように★印の行を消さないと
動きませんでした。どうしてでしょうか??
該当のソースコード
言語:JAVA
public class 自作Program検討B extends JFrame {
int bx=5;
int bxs=5;
int by=5;
int bys=5;
DrawPanelB panel;
public 自作Program検討B() {
panel=new DrawPanelB();
this.setSize(600,400);
this.setTitle("反射するボール");
this.add(panel,BorderLayout.CENTER);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new 自作Program検討B();
}
class DrawPanelB extends JPanel{
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
//★for(int i=1;i<10;i++) {
g.fillOval(bx,by,10,10);
repaint();
if(bx>0 & bx<550) { bx=bx+bxs;}else {bxs=-bxs; bx=bx+bxs;}
if(by>0 & by<320) { by=by+bys;}else {bys=-bys;by=by+bys; }
try {Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace();}
//}★
}
}
}
//終了
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー