坦克大战01

java绘图坐标体系

简单介绍

坐标的原点位于左上角,用像素作为单位,横向为x轴,垂直方向为y轴

像素

像素是一个密度单位

eg:显示器的分辨率是800*600,则表示计算机屏幕共有480000个像素

快速入门

public class DrawCircle extends 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);
        //当点击窗口的小x,程序就完全退出
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);//可以显示
    }
}
//1.先定义一个面板MyPanel(),继承JPanel类
class MyPanel extends JPanel{
    //说明
    //1.Mypanel对象就是一个画板
    //2.Graphics g把g理解成一个画笔
    //3.Graphics提供了很多绘图的方法
    //Graphics g
    @Override
    public void paint(Graphics g) {
        super.paint(g);//调用父类的方法初始化
        //画出一个圆
        System.out.println("被调用了~");
        g.drawOval(100,100,100,100);
    }
}

API文档如下:

运行展示:

绘图原理

  • Component类提供了两个和绘图 相关最重要的方法

    1. paint(Graphics g)绘制组件的外观
    2. repaint()刷新组件的外观
  • 当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件

  • 以下情况paint()会被调用

    1. 窗口最小化 再最大化
    2. 窗口的大小发生变化
    3. repain方法被调用

java绘图技术

Graphics类

  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. 填充矩形 fillRect(int x,int y,int width,int height)

  5. 填充椭圆 fillOval(int x,int y,int width,int height)

  6. 画图片 drawImage(Image img,int x,int y,..)

    • 遇到了问题,无法成功调用图片

      • 已解决,应该把图片粘贴到out目录下的文件名中

  7. 画字符串 drawString(String str,int x,int y)

  8. 设置画笔的字体 setFont(Font font)

  9. 设置画笔的颜色 setColor(Color c)

posted @   z轩  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示