1.新建TankFrame类继承Frame类方便重写里面的方法
2.创建一个构造方法
3.把Main方法里的设置剪切进刚刚定义的构造方法(快捷键Ctrl+X)并修改里面的方法,并把f.删掉
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//继承Frame类,方便重写里面的方法
public class TankFrame extends Frame {
public TankFrame(){
setSize(800,600);//设置窗口大小
setResizable(false);//设置为false后不能改变大小
setTitle("tank war");//设置窗口标题为tank war
setVisible(true);//设置是否显示
addWindowListener(new WindowAdapter() { //创建一个监听器如果用户点击X后调用windowClosing
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
4.在Main方法中New一个TankFrame来调用刚刚修改的构造方法
运行查看效果
5.在TankFrame中重写Frame类中的paint方法(这里可以用idea中的快捷键alt+insert键)
然后在键盘上直接输入print方法就可以定位到print方法
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//继承Frame类,方便重写里面的方法
public class TankFrame extends Frame {
public TankFrame(){
setSize(800,600);//设置窗口大小
setResizable(false);//设置为false后不能改变大小
setTitle("tank war");//设置窗口标题为tank war
setVisible(true);//设置是否显示
addWindowListener(new WindowAdapter() { //创建一个监听器如果用户点击X后调用windowClosing
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
@Override
public void paint(Graphics g) {
super.paint(g);
}
}
6.print方法是在窗口需要重新绘制的时候来调用它,我们可以先在print方法中写一段打印语句来验证
@Override
public void paint(Graphics g) {
System.out.println("paint");
}
7.再次运行可以看到控制台打印了两次paint语句
8.然后我们来用paint方法来画一个矩形
调用Graphics 方法里的fillRect方法
@Override
public void paint(Graphics g) {
g.fillRect();
}
fillRect方法有四个参数
x、y、width,height
第一个参数是x值表示距离左边多少像素,y值表示距离上面多少个像素
width表示图形的宽度
height表示图形的高度
9.修改paint方法再次运行可以看到,画出来了一个黑色的距离左边200像素距离上面200像素宽度为50、高度为50的矩形
@Override
public void paint(Graphics g) {
g.fillRect(200,200,50,50);
}