Java绘图原理(一) Graphics的各种。。

Graphics 类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。

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、填充矩形 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,..);
7、画字符串 drawString(String str,int x,int y);
8、设置画笔的字体 setFont(Font font);
9、设置画笔的颜色 setColor(Color c);

功能:Java绘图原理
 * Component提供了两个和绘图相关的重要方法
 * 1. paint(Graphics g)绘制组件的外观
 * 2.repaint刷新组建的外观
 * 二、
 * 在以下情况paint()会被调用
 * 1.窗口最小化再最大化
 * 2.窗口的大小发生变化

 * 3.repaint函数被调用


这里我们在自定义类MyPanel中覆盖paint()

package Test0;
import java.awt.*;
import javax.swing.*;
public class Draw extends JFrame
{
	MyPanel mp = null ;
	
	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		Draw qwe = new Draw();
		
	}
	
	public Draw()
	{
		mp = new MyPanel();
		
		this.add(mp);
		this.setSize(400,300);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

class MyPanel extends JPanel	//我自己的面板,用于绘图和实现绘图区域
{
	//覆盖JPanel的paint方法
	//Graphics是绘图的重要类,可以理解成一支画笔
	public void paint(Graphics g)
	{
		//1.调用父类函数完成初始化
		super.paint(g);		//这句话不能少
		//System.out.println("被调用");		//证明别调用
		
		//画圆
		g.drawOval(10, 10, 30, 30);
		//画直线
		g.drawLine(20, 30, 20, 80);
		//画出矩形边框
		g.drawRect(50, 50, 100, 50);
		//画填充矩形
		g.setColor(Color.BLUE);		//设置颜色
		g.fillRect(80,60,40,60);
		
	}
}

画出来就是下面这个鬼样子(随便画画就好):



那么接下来如果想要用这个MyPanel绘制一个图片也不难,就是将MyPanel的构造函数改为下面即可:

Image im = Toolkit.getDefaultToolkit().getImage
				(Panel.class.getResource("/mm.jpg"));
		g.drawImage(im, 0, 0, 240, 280, this);		//this代指JPanel本身,意思是把图片放这上面
	


随便放一张了~


下面就是写文字了:

		g.setColor(Color.BLUE);
		g.setFont(new Font("华文彩云",Font.BOLD,30));
		g.drawString("社会主义好", 100, 100);	//第一个参数你要画出什么东西,后面两个是位置

是不是满满的正能量?

发布了19 篇原创文章 · 获赞 27 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章