paint方法
如果要在窗口中画图或者显示什么内容,我们需要重写paint(Graphics g)方法。 这个方法的作用是:画出整个窗口及其内部内容。它会被系统自动调用。我们自己不需要去调用这个方法。
【示例13-2】paint方法介绍
@Override
public void paint(Graphics g) {
//paint方法作用是:画出整个窗口及内部内容。被系统自动调用。
}
·Graphics画笔对象_画图形
Graphics对象,我们可以把它想象成“一支画笔”,窗口中的图形都由这支“画笔”画出来的。
画出每个图形都需要指定图形所在“矩形区域”的位置和大小。比如绘制椭圆。g.drawOval(100, 50, 300, 300); 实际上,就是根据椭圆所在的外切矩形来确定椭圆的基本信息。上面4个参数指的是椭圆外切矩形:左上角顶点(100px,50px),宽度300px,高度300px。
使用paint方法画图形:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
/**
* 飞机游戏的主窗口
* @author 赵广陆
*
*/
public class MyGameFrame extends JFrame {
Image ball = GameUtil.getImage("images/ball.png");
@Override
public void paint(Graphics g) { //自动被调用。 g相当于一只画笔
Color c = g.getColor();
Font f = g.getFont();
g.setColor(Color.white);
g.drawLine(100, 100, 300, 300);
g.drawRect(100, 100, 300, 300);
g.drawOval(100, 100, 300, 300);
g.fillRect(100, 100, 40, 40);
g.setColor(Color.white);
g.setFont(new Font("宋体",Font.BOLD,20));
g.drawString("游戏时间长度:", 200, 200);
g.drawImage(ball, 250, 250, null);
g.setColor(c);
g.setFont(f);
}
/**
* 初始化窗口
*/
public void launchFrame(){
this.setTitle("是男人就坚持10秒");
this.setVisible(true);
this.setSize(500, 500);
this.setLocation(300, 300);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
MyGameFrame f = new MyGameFrame();
f.launchFrame();
}
}
运行效果: