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); //第一個引數你要畫出什麼東西,後面兩個是位置
是不是滿滿的正能量?