java游戏开发杂谈

在Eclipse里,编写如下两个类:

1package game2; 2 3import java.awt.Color; 4import java.awt.Graphics; 5 6import javax.swing.JPanel; 7/** 8 * java游戏开发杂谈 9 * ---demo2:画布和画笔 10 * 11 * @author 台哥 12 * @date 2019-04-02 13 */ 14 15public class GamePanel extends JPanel { 16 /** 屏幕的宽和高 */ 17 private int width,height; 18 19 public GamePanel(int width, int height) { 20 this.width = width; 21 this.height = height; 22 this.setSize(width, height); 23 } 24 25 26 /** 27 * 覆盖paintComponent()方法 28 * 参数中的Graphics是画笔,使用它可以绘制出字符串、直线、矩形、圆、图片等等。 29 */ 30 public void paintComponent(Graphics g) { 31 super.paintComponent(g); 32 33 //画绿色背景 34 g.setColor(new Color(0x839156)); 35 g.fillRect(0, 0, width, height); 36 37 //画一行字 38 g.setColor(Color.pink); 39 g.drawString("我学java,我骄傲", 100, 80); 40 41 //再画一行字 42 g.setColor(Color.yellow); 43 g.drawString("游戏好玩,开发游戏更好玩", 300, 80); 44 45 //画一条线 46 g.setColor(Color.black); 47 g.drawLine(5, 120, 580, 120); 48 49 //画一个矩形(不填充内部) 50 g.setColor(Color.green); 51 g.drawRect(100, 160, 100, 60); 52 53 //画一个矩形(填充内部) 54 g.setColor(Color.blue); 55 g.fillRect(300, 160, 100, 60); 56 } 57} 58 59 60package game2; 61 62import javax.swing.JFrame; 63/** 64 * java游戏开发杂谈 65 * ---demo2:画布和画笔 66 * 67 * @author 台哥 68 * @date 2019-04-02 69 */ 70public class GameFrame extends JFrame{ 71 72 private int width = 600, height = 400; 73 74 public GameFrame() { 75 //设置窗体标题 76 this.setTitle("java游戏开发杂谈-台哥出品"); 77 78 //创建一个画布 79 GamePanel panel = new GamePanel(width, height); 80 //把画布加入到窗体中 81 getContentPane().add(panel, "Center"); 82 83 //设置窗体大小 84 this.setSize(width, height); 85 //设置能否调整窗体大小 86 this.setResizable(false); 87 //这句会使得在屏幕上居中显示 88 this.setLocationRelativeTo(null); 89 //当关闭窗体的时候退出程序 90 this.setDefaultCloseOperation(EXIT_ON_CLOSE); 91 //把窗体显示出来 92 this.setVisible(true); 93 } 94 95 /** 96 * 主方法 97 */ 98 public static void main(String[] args) { 99 GameFrame frame = new GameFrame(); 100 } 101}

运行效果,如下图所示:

窗体JFrame,表示操作系统的一个窗口,可以想象成绘画用的画板。

画布JPanel, 用来放到JFrame中,可在上面作画,可以想象成绘画用的画纸。

画笔Graphics, 用来绘画,提供了一些最基础的绘制方法。比如drawRect绘制一个矩形,drawString绘制字符串。


台哥,一个老的忘记了年龄的程序员,忙里偷闲,瞎扯几篇java游戏开发杂谈,内容浅显,代码简陋。。。

技术精深的同行,一笑而过就好。刚刚入门的同学,感谢你的关注。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )