swing學習二(繪圖技術及原理)

/*java

*畫一個圓函數

*/字體

import java.awt.*;
import javax.swing.*;
public class PaintCircle extends JFrame{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        PaintCircle paintCircle = new PaintCircle();
        
    }
    
    MyPanel mpMyPanel = null;
    
    public PaintCircle(){
        mpMyPanel = new MyPanel();
        this.add(mpMyPanel);
        this.setSize(400, 300);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);        
    }
}

//定義一個MyPanel(用於實現本身的畫板,是用於繪圖和顯示繪圖的區域)
class MyPanel extends JPanel{
    //覆蓋JPanel的paint方法
    //Graphics是繪圖的重要類,能夠理解爲畫筆
    public void paint(Graphics g){
        //調用父類函數完成初始化
        super.paint(g);
        //畫一個圓
        g.drawOval(10, 10, 30, 30);
    }
}

 Component類提供了兩個和繪圖相關的重要方法:this

一、paint(Graphics g)繪製組件的外觀spa

二、repaint()刷新組件的外觀code

當組件第一次在屏幕顯示時,程序會自動調用paint()來繪製組件。blog

 

如下狀況時,paint()方法會被調用:圖片

一、窗口最小化,再最大化。get

二、窗口的大小發生變化。it

三、調用repaint()方法。

 

繪製圖片

//畫圖片
Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/QQ.png"));
//顯示
g.drawImage(image, 10, 10, 139, 154, this);

 

畫文字,設置字體及顏色

//畫文字,設置字體及顏色
g.setFont(new Font("宋體", Font.BOLD, 30));
g.setColor(Color.RED);
g.drawString("我愛天安門", 60, 60);
相關文章
相關標籤/搜索