Java绘图原理
Component类提供了两个和绘画相关最重要的方法
1、paint(Graphics g)绘制组件外观
2、repaint()刷新组件外观
注:1、当组件第一次在屏幕显示的时候,程序会自动调用paint()方法来绘制组件。
2、窗口最小化,再最大化,程序会自动调用paint()方法来绘制组件。
3、窗口的大小发生变化,程序会自动调用paint()方法来绘制组件。
4、repaint函数被调用,程序会自动调用paint()方法来绘制组件。
Graphics类
可以将Graphics理解为画笔,它可以为我们提供各种绘制图形的方法
1、直线 drawLine(int x1,int y1,int x2,int y2);
2、矩形边框 drawRect(int x1,int y1,int width,int height);
3、椭圆边框 drowOval(int x1,int y1,int width,int height);
4、填充矩形 fileRect(int x1,int y1,int width,int height);
5、填充椭圆 fileOval(int x1,int y1,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);
举例:
import java.awt.*;
import javax.swing.*;
public class Demo_20 extends JFrame{
Mypanel m=null;
public static void main(String[] args) {
Demo_20 a=new Demo_20();
}
public Demo_20()
{
m=new Mypanel();
this.add(m);
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.setColor(Color.yellow)
g.drawOval(0, 0, 30, 30);
//画一个红色填充了的圆圈
g.setColor(Color.yellow)
g.fillOval(50.50,20)
//在面板上画图片
Image im=Toolkit.getDefaultToolkit().getImage
(Panel.class.getResource("/haha.jpg"));
//显示图片
g.drawImage(im, 20, 20, 200, 200,this);
//如何画出字
g.setFont(new Font("隶书",Font.BOLD,20));
g.setColor(Color.green);
g.drawString("LeeMinho always looks good!",100, 100);
}
}