*绘图原理:

    Component类提供了两个和绘图相关最重要的方法

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

        repaint()刷新组件的外观(展示动态)

*当组件第一次在屏幕上显示的时候,程序会自动调用paint()方法

*以下情况paint()会被调用

    窗口最小化,再最大化

    窗口的大小发生变化

    repaint函数被调用

*Graphics提供了各种绘制图形的方法:

    画直线:drawLine(int x1,int y1,int x2,int y2);

    画矩形边框:drawRectint x,int y,int width,int height);

    填充矩形:fillRect(int x,int y,int width,int height);

画圆:drawOval(int x,int y,int width,int height);

    填充圆:fillOval(int x,int y,int width,int height);

画图片:drawImage(Image img,int x,int y……);

画字符串:drawString(String str,int x,int y);

设置画笔的字体:setFont(Font font);

设置画笔的颜色:setColor(Color c);

……

代码:

package com.test1;

import java.awt.*;

import javax.swing.*;

 

public class Demo9_1 extends JFrame

{

    MyPanel mp=null;

    public static void main(String[] args)

    {

     

       Demo9_1 Demo9_1=new Demo9_1();

     

    }

  

    public Demo9_1()

    {

       mp=new MyPanel();

     

       this.add(mp);

       this.setSize(400, 300);

       this.setDefaultCloseOperation(EXIT_ON_CLOSE);

       this.setVisible(true);

    }

  

}

 

 

//定义一个MyPanel

class MyPanel extends JPanel

{

    //覆盖JPanel的paint方法

    //Graphics是绘图的重要类,相当于画笔

    public void paint(Graphics g)

    {

       //调用父类,完成初始化

       //此句话不能少!!!

       super.paint(g);

       System.out.println("paint被调用");

       //先画一个圆

       g.drawOval(10, 10, 30, 30);// 画圆

       //画出直线

       g.drawLine(100, 100, 200, 200);

       //画出矩形边框

       g.drawRect(10,10,40,60);

     

       //调整颜色

       g.setColor(Color.blue);

       g.fillRect(10, 10, 1200, 30);

       g.setColor(Color.red);

       g.fillRect(10, 100, 1200, 30);

     

      

       Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/1234.jpg"));

     

       //显示出来

       g.drawImage(im,90,90,200,150,this);

     

       //如何画字符串

       g.setColor(Color.red);

       g.setFont(new Font("隶书 ",Font.BOLD,50));

       g.drawString("祖国万岁", 180, 60);    

    } 

}

posted on 2012-08-06 08:24  Adonstein  阅读(717)  评论(0编辑  收藏  举报