JAVA学习日志 简单Frame。加载图片,小球的往复运动,线程

来源:互联网 发布:月薪3万的工作 知乎 编辑:程序博客网 时间:2024/04/29 21:09
package MyGame;/** * @auther 冯世磊 * 窗口小项目 */import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class GameFrame extends Frame{private int x=200,y=200;private boolean o=true;Image img=GameUtil.getImage("image/ball1.jpg");//加载小球public void launchFrame(){  //打开窗口的方法setSize(500,500); //设置窗口的长度和宽度setLocation(100,100);//设置窗口出现的位置setTitle("特训");setVisible(true);//设置窗口的可见性new PaintThread().start();//开启重画线程addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}@Overridepublic void paint(Graphics g) {g.drawImage(img, x, y, null);g.drawString("小球的往复运动", 100, 100);if(y==480){o=false;} if(y==20){o=true;}if (o){y=y+2;}else{y-=5;}System.out.println(y);    }/** * 定义一个重画窗口的线程内部类 * @author Administrator * */class PaintThread extends Thread{public void run(){while(true){repaint();//重画try {Thread.sleep(40);} catch (InterruptedException e) {e.printStackTrace();}//设置每次重画延迟50毫秒}}}public static void main(String[] args){GameFrame gf=new GameFrame();gf.launchFrame();}}
package MyGame;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.IOException;import java.net.URL;import javax.imageio.ImageIO;public class GameUtil {public static Image getImage(String path){URL u=GameUtil.class.getClassLoader().getResource(path);BufferedImage img=null;try {img=ImageIO.read(u);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return img;}}



0 0
原创粉丝点击