我所知道坦克大战(单机版)之Client窗口的创建、关闭、禁止调整大小

前言需求


本篇文章开始根据尚学堂马士兵老师的教学视频:坦克大战,进行展开学习

本篇文章目的

  • 产生窗口
  • 添加不允许移动窗口大小的处理
  • 添加关闭窗口的事件处理

一、创建窗口

创建TankClient类,并使用继承Frame类的方式,使用相关方法

public class TankClient extends Frame {

    //定义窗口方法
    public void lauchFrame(){
        //设置窗口出现的位置
        this.setLocation(400,300);
        //设置窗口的宽度高度
        this.setSize(800,600);
        setVisible(true);
    }

}

接下来运行main 方法

public static void main(String[] args) {
    TankClient client = new TankClient();
    //打开窗口
    client.lauchFrame();
}

image.png

二、添加不允许移动窗口大小的处理

运行后发现窗口可以移动调整大小,这样缩放窗口大小会影响很大

所以我们要添加不允许移动窗口的事件处理

//定义窗口方法
public void lauchFrame(){
    //设置窗口出现的位置
    this.setLocation(400,300);
    //设置窗口的宽度高度
    this.setSize(800,600);
    setVisible(true);
    //不允许随意调整窗口大小的方式
    this.setResizable(false);
}
public void setResizable(boolean resizable)

设置此窗体是否可由用户调整大小。

参数为boolean类型:

resizeable值为true时,表示生成的窗体可以自由改变大小;

resizeable值为false时,表示生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小

三、添加关闭窗口事件处理

//定义窗口方法
public void lauchFrame(){
    //设置窗口出现的位置
    this.setLocation(400,300);
    //设置窗口的宽度高度
    this.setSize(800,600);
    setVisible(true);
    //采用匿名类的方式关闭窗口
    this.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            //正常处理表示正常退出
            System.exit(0);
        }
    });
    //不允许随意调整窗口大小的方式
    this.setResizable(false);
}
这个是表示在窗口添加一个Windows事件消息,目的是我们关闭窗口的时候可以正常的退出,其实这段语句等价于

frame.setDefaultCloseOptration(JFrame.EXIT_ON_CLOSE);

在语句中new WindowAdapter表示新的创建WindowAdapter的对象

中间是对一个函数也就是windows窗口关闭函数进行重写

接下来,我们就可以运行发现无法修改窗口大小,也可以正常关闭了

参考资料


尚学堂:坦克大战(马士兵老师)

你可能感兴趣的:(java程序员项目设计模式)