画出一个正方形

文章介绍了如何在Java中创建一个名为TankFrame的类,该类继承自Frame,重写了构造方法和paint方法。构造方法用于设置窗口的基本属性如大小、标题和可见性,同时添加了窗口关闭监听器。paint方法被用来重绘窗口,示例中使用fillRect方法画出一个矩形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值