私はまだ学生です。私はボールを描き、自分で動く方法を学ぼうとしています。ここでなぜ私のボールは点滅し続けますか?
はコードです:
import javax.swing.*;
import java.awt.*;
public class Ball extends JFrame
{
int x = 50;
int y = 50;
int rad = 30;
Ball(){
setSize(500,500);
setTitle("Ball");
setVisible(true);
}
void move()
{
if (x < getWidth() - rad){
x = x + 1 ;
}
try
{
Thread.sleep(100);
}
catch(Exception e)
{
}
}
public void paint(Graphics g)
{
super.paint(g);
g.fillOval(x,y,rad,rad);
}
public static void main(String args[])
{
Ball b = new Ball();
while(true){
b.move();
b.repaint();
}
}
}
私はプログラムを実行すると
ボールが右に動いているので、私はこのコードの動作にそれの60%を言うだろうが、それはいくつかのために点滅し続けます理由と私はなぜ知っていない。
それは私のコンピュータの問題、またはコードや何らかのバグですか?私は日食ルナに
例外を捕まえるときは、何か問題が起きたときにわかるように、少なくとも何かを印刷してください。 – Gendarme
これは、ボールが再描画されたことに起因すると思われます。ボールを再描画して再描画する必要があります。わずかな遅れがあり、点滅が発生します。 –
私のためにうまく動作します。点滅しない。私はあなたのJFrameにデフォルトのクローズ操作を追加します:http://stackoverflow.com/questions/7799940/jframe-exit-on-close-java – ManoDestra