Java は、壁に当たると跳ね返る単純なボールの射出を実装します。コードは次のとおりです。
次のようにコードをコピーします。
パッケージtsct;
java.awt.Colorをインポートします。
java.awt.Graphicsをインポートします。
java.awt.Imageをインポートします。
インポート java.awt.event.WindowStateListener;
java.io.ファイルをインポートします。
インポート java.io.IOException;
インポートjavax.imageio.ImageIO;
javax.swing.JFrameをインポートします。
パブリック クラス Main は JFrame を拡張し、Runnable を実装します
{
int x=40;
int y=30;
int幅=50;
int 高さ = 50;
ブール値 xAdd=true;
ブール値 yAdd=true;
パブリックボイドペイント(グラフィックスg)
{
スーパーペイント(g);
//g.fillRect(x, y, width, height);
g.setColor(Color.red);
g.fillOval(x, y, 幅, 高さ);
}
int i=1;
@オーバーライド
public void run()
{
// TODO 自動生成されたメソッド スタブ
その間(真)
{
if(yAdd)
y+=15;
それ以外
y-=15;
if(y>=this.getHeight()-高さ||y<=25)
yAdd=!yAdd;
if(xAdd)
x+=30;
それ以外
x-=30;
if(x>=this.getWidth()-width||x<=5)
xAdd=!xAdd;
リペイント();
試す
{
Thread.sleep(40);
i++;
}
catch (中断例外 e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
// メイン main=new Main();
//
// main.setVisible(true);
// main.run();
メイン main=new Main();
main.setVisible(true);
main.setBounds(50, 50, 800, 600);
スレッド thread=新しいスレッド(メイン);
thread.start();
試す
{
画像 image=ImageIO.read(new File(Main.class.getResource("").toString()));
}
catch (IOException e)
{
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}