swing学习二(绘图技术及原理)

/*

*画一个圆

*/

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类提供了两个和绘图相关的重要方法:

1、paint(Graphics g)绘制组件的外观

2、repaint()刷新组件的外观

当组件第一次在屏幕显示时,程序会自动调用paint()来绘制组件。

 

以下情况时,paint()方法会被调用:

1、窗口最小化,再最大化。

2、窗口的大小发生变化。

3、调用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);

 

posted @ 2015-11-05 15:03  wee616  阅读(876)  评论(0编辑  收藏  举报