您的当前位置:首页>新品 > 正文

环球资讯:java基础知识:如何绘图以及Graphics类的含义

来源:CSDN 时间:2023-04-12 15:01:35

在当今社会,java的使用越来越广泛,今天就来为大家介绍一些基础知识,在java中如何绘图以及Graphics类的含义是什么。一起来看看吧。

一、首先说一下java的绘图技术。


(相关资料图)

1.坐标原点位于左上角,以像素为单位。像素是计算机屏幕上最小的显示单位。在java的坐标系中,第一个是X坐标,表示当前位置为水平方向,距离坐标原点X个像素;第二个是Y坐标,表示当前位置为垂直方向,距离坐标原点Y个像素。图片如下所示:

2.计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。比如说,计算机显示器的分辨率是800×600,这就表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480000个像素。当然,现在的计算机可以支持更高的分辨率,也就是说,屏幕上可以显示更多的像素。因此,像素是一个密度单位,而厘米是长度单位,这两者无法比较。

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

⑴paint(Graphics g)绘制组件的外观;

⑵repaint()刷新组件的外观。

当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件,在以下情况paint()将会被调用:

⑴窗口最小化,再最大化;

⑵窗口的大小发生变化;

⑶repaint函数被调用。

二、接下来简述一下Graphics类

Graphics类可以理解为画笔,为我们提供了各种绘制图形的方法:

⑴画直线drawLine(int x1, int y1, int x2, int y2);

⑵画矩形边框drawRect(int x, int y, int width, int height);

⑶画椭圆边框drawOval(int x, int y, int width, int height);

⑷填充矩形fillRect(int x, int y, int width, int height);

⑸填充椭圆fillOval(int x, int y, int width, int height);

⑹画图片drawImage(Image img, int x, int y,…);

⑺画字符串drawString(String str, int x, int y);

⑻设置画笔的字体setFont(Font font);

⑼设置画笔的颜色setColor(Color c);

代码展示如下:import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class GraphicsTest extends JFrame

{

// 定义组件

MyPanel1 mp = null;

public static void main(String[] args)

{

new GraphicsTest();

}

public GraphicsTest()

{

// 构建组件

mp = new MyPanel1();

// 加入组件

this.add(mp);

// 设置窗体

this.setSize(400, 300);

this.setVisible(true);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

/**

* @Description: 定义一个MyPanel(我自己的面板是用于绘图和显示绘图的区域)

*/

class MyPanel1 extends JPanel

{

private static final long serialVersionUID = 1 L;

// 重写(覆盖)JPanel的paint方法

public void paint(Graphics g)

{

// 1、调用父类函数,完成初始化任务

super.paint(g);

// 画一个直线

g.drawLine(10, 10, 40, 10);

// 画矩形边框

g.drawRect(50, 50, 40, 40);

// 画椭圆边框

g.drawOval(130, 130, 60, 60);

// 画填充矩形

g.setColor(Color.blue);

g.fillRect(10, 150, 70, 70);

// 画填充椭圆

// 设置画笔颜色

g.setColor(Color.red);

g.fillOval(270, 140, 100, 80);

// 如何画出字

g.setColor(Color.red);

g.setFont(new Font("黑体", Font.BOLD, 40));

g.drawString("祖国万岁", 150, 100);

// 画弧形

g.drawArc(100, 100, 120, 200, 50, 100);

}

}

标签:

最新新闻:

新闻放送
Top