Java에서는 벽에 부딪힐 때 튕기는 간단한 공 방출을 구현합니다.
다음과 같이 코드 코드를 복사합니다.
패키지 tsct;
import java.awt.Color;
import java.awt.Graphics;
java.awt.Image 가져오기;
import java.awt.event.WindowStateListener;
java.io.파일 가져오기;
import java.io.IOException;
javax.imageio.ImageIO 가져오기;
import javax.swing.JFrame;
공개 클래스 Main은 JFrame을 확장하고 Runnable을 구현합니다.
{
정수 x=40;
정수 y=30;
정수 너비=50;
정수 높이=50;
부울 xAdd=true;
부울 yAdd=true;
공공 보이드 페인트(그래픽 g)
{
super.paint(g);
//g.fillRect(x, y, 너비, 높이);
g.setColor(Color.red);
g.fillOval(x, y, 너비, 높이);
}
int i=1;
@보수
공개 무효 실행()
{
// TODO 자동 생성된 메서드 스텁
동안(사실)
{
if(y추가)
y+=15;
또 다른
y=15;
if(y>=this.getHeight()-높이||y<=25)
y추가=!y추가;
if(x추가)
x+=30;
또 다른
x=30;
if(x>=this.getWidth()-너비||x<=5)
x추가=!x추가;
다시 칠하기();
노력하다
{
Thread.sleep(40);
나++;
}
잡기(InterruptedException e)
{
e.printStackTrace();
}
}
}
공개 정적 무효 메인(문자열[] 인수)
{
// 메인 main=new Main();
//
// main.setVisible(true);
// 메인.run();
메인 메인=새 메인();
main.setVisible(true);
main.setBounds(50, 50, 800, 600);
스레드 스레드=새 스레드(메인);
thread.start();
노력하다
{
Image image=ImageIO.read(new File(Main.class.getResource("").toString()));
}
잡기(IOException e)
{
// TODO 자동 생성된 캐치 블록
e.printStackTrace();
}
}
}