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);