在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游戏开发杂谈,内容浅显,代码简陋。。。
技术精深的同行,一笑而过就好。刚刚入门的同学,感谢你的关注。
