1. 坦克大战演示 568
2 .为什么选择坦克大战
V好玩
V涉及到java各个方面的技术
1. java面向对象编程
2.多线程
3.文件i/o操作
4.数据库
巩固旧知识,学习新知识
3. 写项目前的提醒
编写坦克大战游戏,你需要有一定的java基础,是完全可以听懂的,最核心的
部分都会带大家起完成。
2.记住点:成为一个编程高手的秘诀就是:思-----编程----思考----编程
4. java绘图坐标体系 569
4.1 坐标体系-介绍 569
下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第
个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当
前位置为垂直方向,距离坐标原点y个像素。
4.2 坐标体系-像素
1. 绘图还必须要搞清个非常重要的概念像素一个像素等于多少厘米?
2. 计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。例如,计算机显示器的分辨率是800x 600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480 000个像素。像素是一个密度单位而厘米是长度单位两者无法比较
5. 介绍-快速入门 570
先给大家写一个小案例,在面板上画个小圆,然后借这个案例,来讲解java绘图技
术原理。
代码在com.stulzl.draw_.包中
DrawCircle
package com.stulzl.draw_;
import javax.swing.*;
import java.awt.*;
//先给大家写一个小案例,在面板上画个小圆,然后借这个案例,来讲解java绘图技术原理。 570
public class DrawCircle extends JFrame{//JFrame对应一个窗口
//定义一个面板
private MyPanel mp = null;
public static void main(String[] args) {
new DrawCircle();//开始画圆了
}
public DrawCircle(){//写一个构造器设置信息
//初始化面板
mp = new MyPanel();
//把面板放入到窗口
this.add(mp);
//设置窗口的大小
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当点击窗口小叉x,程序完全退出
this.setVisible(true);//可以显示窗口
}
}
//1.先定义一个 MyPanel, 继承 JPanel 类, 画图形,就在面板上画
class MyPanel extends JPanel {//JPanel是系统提供的一个类
//说明:可以这样理解
//1. MyPanel 对象就是一个画板
//2. Graphics g 把 g 理解成一支画笔
//3. Graphics 提供了很多绘图的方法
//绘图方法
@Override
public void paint(Graphics g) {
// System.out.println("paint方法被调用了……");
super.paint(g);//调用父类的方法完成初始化
//画一个圆
g.drawOval(10,10,100,100);//调用画圆的方法
}
}
6. 绘图原理 570
Component类提供了 两个和绘图相关最重要的方法:
1. paint(Graphics g)绘制组件的外观
2. repaint(刷新组件的外观。
当组件第一 次在屏幕显示的时候,程序会自动的调用paint(方法来绘制组件。
在以下情况paint0将会被调用:
1.窗口最小化,再最大化
2.窗口的大小发生变化
3. repaint方法被调用
7. Graphics 类 571
Graphics类你可以理解就是画笔,为我们提供了各种绘制图形的方法:[参考jdk帮助文档]
1. 画直线drawLine(int x1,int y1,int x2,int y2)
2. 画矩形边框drawRect(int x, int y, int width, int height)
3. 画椭圆边框drawOval(int x, int y, int width, int height)
4. 填充矩形fllRect(int x, int y, int width, int height)
5. 填充椭圆fillval(int x, int y, int width, int height)
6. 画图片drawlmage(lmage img, int x, inty, .)
7.画字符串drawString(String str, int x, int y)
8. 设置画笔的字体setFont(Font font)
9. 设置画笔的颜色setColor(Color c)
代码在com.stulzl.draw_graphics.包中
Draw_Graphics
package com.stulzl.draw_graphics;
import com.stulzl.draw_.DrawCircle;
import javax.swing.*;
import java.awt.*;
//演示Graphics类方法 571
public class Draw_Graphics extends JFrame{//继承系统提供的JFrame类,对应一个窗口
private MyPanel mp = null;//定义一个面板
public static void main(String[] args) {
new Draw_Graphics();
}
public Draw_Graphics(){//构造器,设置信息
mp = new MyPanel();//初始化面板
this.add(mp);//将面板装入窗口
this.setSize(1200,700);//这只窗口大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭程序
this.setVisible(true);//显示窗口
}
}
class MyPanel extends JPanel{
@Override
public void paint(Graphics g) {//画图方法
super.paint(g);
//演示绘制不同图形……
//1. 画直线drawLine(int x1,int y1,int x2,int y2)
//g.drawLine(10,10,100,100);//x1,y1为起点,x2,y2为终点
//2. 画矩形边框drawRect(int x, int y, int width, int height)
//g.drawRect(10,10,100,100);//10,10左上角起点坐标,100,100为长高(也可以理解成为右下角终点)
//3. 画椭圆边框drawOval(int x, int y, int width, int height)
//g.drawOval(10,10,100,100);//调用画圆方法10,10为坐标,100,100分别代表长 高
//4. 填充矩形fllRect(int x, int y, int width, int height)
//g.setColor(Color.BLUE);//先设置画笔颜色
//g.fillRect(10,10,100,100);
//5. 填充椭圆fillval(int x, int y, int width, int height)
//g.setColor(Color.GREEN);
//g.fillOval(10,10,100,100);
//6. 画图片drawlmage(lmage img, int x, inty, ..)
//1. 获取图片资源, /bg.jpg 表示在该项目的根目录去获取 bg.png 图片资源
//Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bg.jpg"));
//g.drawImage(image,10,10,1080,637,this);//10,10代表坐标,1080,637代表图片长高this表示在当前位置
//7.画字符串drawString(String str, int x, int y)
//8. 设置画笔的字体setFont(Font font)
//9. 设置画笔的颜色setColor(Color c)
g.setColor(Color.RED);//设置字体颜色
g.setFont(new Font("隶属",Font.BOLD,50));//"隶属"字体类型 Font.BOLD加粗 50 字体大小
g.drawString("中国",100,100);//100,100是字符串的左下角坐标
}
}