覆盖JPanel的paint方法
Graphics是绘图的重要类,你可以将它理解为一个画笔
paint这个方法在组件中进行自动调用
以下情况下:paint()将会被调用
1.窗口的最大化,再最大化
2.窗口的大小发生变化
3. repaint函数被调用
import java.awt.*;
import javax.swing.*;
public class Demo_tanke extends JFrame {
public static void main(String[] args) {
Demo_tanke demo_tanke = new Demo_tanke();
}
public Demo_tanke() {
MyPanel mp = new MyPanel();
this.add(mp);
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//定义一个Mypanel
class MyPanel extends JPanel
{
//覆盖JPanel的paint方法
//Graphics是绘图的重要类,你可以将它理解为一个画笔
//paint这个方法在组件中进行自动调用
//以下情况下:paint()将会被调用
//窗口的最大化,再最大化
//窗口的大小发生变化
//repaint函数被调用
public void paint(Graphics g) {
//1.调用父类函数完成初始化
//这句话不能少,其中repaint是代表刷新组件的外观,paint代表绘制组件的外观
super.paint(g);
//先画一个圆
// g.drawOval(50, 50, 100, 100);
// g.drawLine(30, 30, 90, 100);
// g.draw3DRect(20, 30, 30, 350, true);
//
// g.setColor(Color.blue);
// g.fillRect(10, 10, 40, 60);
//面板上画图
//重新画图
Image img = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/a.jpg"));
//显示
g.drawImage(img, 90, 90, 200, 150, this);
}
}
绘制结果: