第一个JAVA小项目(太阳系行星运动模型)


1. 窗体的构建

对于游戏来说,需要构建一个桌面窗体,建立MyFrame类,继承Frame类,专用用于游戏窗体的构建。在MyFrame类中建立launchFrame()方法,用于实现窗口的生成。

这三行代码分别用于设置窗体大小,位置和可见的,这三个方法继承自Frame类。

            setSize(Constant.GAME_HEIGHT,Constant.GAME_WIDTH);
            setLocation(100, 100);
            setVisible(true);

定义内部类PaintThread继承Thread,重写Runnable接口方法run(),一直执行 repaint()函数,Thread.sleep(40)是让线程停止40ms。PaintThread().start()让线程的run()方法执行,可以实现窗口的动态更新。

         new PaintThread().start();

         class PaintThread extends Thread{
   
             public void run(){
                 while(true){
                     repaint();
                     try {
                        Thread.sleep(40);
                     } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                     }
                 }
             }
         }

在addWindowListener方法中定义内部类WindowAdapter,内部内重写了windowClosing()方法,用于窗体的退出(如果没有这个方法,窗体将无法退出)

addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
         }

窗体构建类MyFrame 的完整代码如下:


package com.zhong.util;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;



public class MyFrame extends Frame {
   

       /**
        * 加载窗口    
       */
         public void launchFrame(){
            setSize(Constant.GAME_HEIGHT,Constant.GAME_WIDTH);
            setLocation(100, 100);
            setVisible(true);

            new PaintThread().start();
            addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
         }

         class PaintThread extends Thread{
             public void run(){
                 while(true){
                     repaint();
                     try {
                        Thread.sleep(40);
                     } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                     }
                 }
             }
         }


}

2. 工具类

定义常量类Constant,用于保存项目中的所有常量。代码如下:

package com.zhong.util;
/**
 * 常量
 * @author lenovo
 *
 */
public class Constant<
  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值