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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章