【Java】绘图坐标体系

目录

一、坐标体系

     1.坐标

     2.像素

二、绘图

     1.语法

     2.绘图原理 

    3. 绘图方法


一、坐标体系

     1.坐标

  • 坐标原点位于左上角,以像素为单位。在Java坐标系中,x坐标表示当前位置为水平方向,距离坐标原点x个像素;y坐标表示当前位置为垂直方向,距离坐标原点y个像素。

     2.像素

  1. 是指在由一个数字序列表示的图像中的一个最小单位,计算机在屏幕上显示的内容都是由屏幕上的每 一个像素组成的。例如:计算机显示器的分辨率是1600x1200,表示计算机屏幕上的每一行由1600个点组成,共有1200行整个计算机屏幕共有1,920,000个像素。
  2. 像素是一个密度单位,而不是长度单位,两者无法比较

二、绘图

     1.语法

画框:继承JFrame类
画板:继承JPanel类

画笔:paint方法中(Graphics g) //Graphics g 理解成一支画笔,提供了很多绘图的方法

public class draw1 extends JFrame {//JFrame 对应窗口,可以理解成是一个画框
    public static void main(String[] args) {
        new draw1();
    }

    //1.定义一个面板
    private MyPanel mp = null;

    public draw1() {//构造器
        //2.初始化面板
        mp = new MyPanel();
        //3.把面板放入到窗口(画框)
        this.add(mp);
        //4.设置窗口的大小
        this.setSize(1000, 1000);
        //5.可以显示
        this.setVisible(true);
        //6.当点击窗口的“×”,程序完全退出.
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}

class MyPanel extends JPanel {//MyPanel 对象就是一个画板
    @Override
    public void paint(Graphics g) {//Graphics g 理解成一支画笔,提供了很多绘图的方法
        super.paint(g);//不能删掉,调用父类的paint方法完成初始化
        //画出一个圆形.
        g.drawOval(10, 10, 100, 100);
    }
}

结果:

     2.绘图原理 

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

  1. paint(Graphics g)绘制组件的外观
  2. repaint()刷新组件的外观。

paint方法被调用:

  1. 当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件
  2. 窗口最小化,再最大化
  3. 窗口的大小发生变化
  4. repaint方法被调用

    3. 绘图方法

public class draw1 extends JFrame {//JFrame 对应窗口,可以理解成是一个画框
    public static void main(String[] args) {
        new draw1();
    }
    private MyPanel mp = null;
    public draw1() {//构造器
        mp = new MyPanel();
        this.add(mp);
        this.setSize(500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}

class MyPanel extends JPanel {//MyPanel 对象就是一个画板
    @Override
    public void paint(Graphics g) {//Graphics g 理解成一支画笔,提供了很多绘图的方法
        super.paint(g);//不能删掉,调用父类的paint方法完成初始化
        //画出一个圆形.
        g.drawOval(10, 10, 500, 500);//(x起点,y起点,x终点,y终点)
        
        //直线
        g.drawLine(100, 10, 500, 100);
        
        //矩形
        g.drawRect(10, 10, 100, 100);
        
        //画笔
        g.setColor(Color.CYAN);//画笔颜色
        g.fillRect(10, 10, 100, 100);//填充
        
        //填充椭圆
        g.setColor(Color.CYAN);
        g.fillOval(10, 10, 100, 100);
        
        //获取图片
        Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/1.png"));
        g.drawImage(image, 100, 10, 175, 221, this);//图片大小位置
        
        //设置颜色和字体
        g.setColor(Color.CYAN);
        g.setFont(new Font("楷书", Font.BOLD, 50));//画笔字体
        g.drawString("aaaaaa", 100, 100);//画笔颜色  字的左下角

    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值