java窗口界面开发,小游戏开发必备技能--第一期

hello 大家好,作为一只单身程序员,我只能说刚刚踏入了程序员的门槛,还有许多知识要学–比如说…想说的太多,我却欲言又止!
少罗嗦直接看东西—

带着问题去学习才能更高效的记忆—理解万岁这句话还真是万能的.

第一个问题(包含两小问)—
1,java中如何建立一个窗口----2,新建的窗口怎么看不到?

我先介绍两种方式
frame 和jframe

public class Tank {
    public static void main(String[] args) {
        Frame frame = new Frame();
         JFrame jf = new JFrame();

运行后啥也看不到–

因为窗口加载到内存中,没有设置显示,所以看不到 啥也看不到,所以没法截图–还有一点,运行之后因为没有用到,可能被 JVM当作垃圾回收了;

设置为可见状态—

public class Tank {
    public static void main(String[] args) {
        Frame frame = new Frame();
        //frame.show();
        frame.setVisible(true);
         JFrame jf = new JFrame();
          //jf.show();//老的方法
        jf.setVisible(true);//新方法

show()方法比较古老–现在已经不用,
建议用setVisible()来控制窗口是否可见;

运行结果如图–
在这里插入图片描述
由于没有设置大小和位置,两个窗口是重合的,而且大小也不能被改变;
其实这是两个窗口–

在这里插入图片描述
构造方法----

在这里插入图片描述

第二个问题,(包含三小问)—
1,窗口的标题怎么设置?
2,窗口的大小怎么设置?
3,窗口怎么关闭?跟我们平时一样吗?

package com.gavin.tank;

import javax.swing.*;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

/**
 * @author : Gavin
 * @date: 2021/7/6 - 07 - 06 - 19:08
 * @Description: com.gavin.tank
 * @version: 1.0
 */
public class Tank {
    public static void main(String[] args) {
        Frame frame = new Frame();
        //frame.show();
        frame.setVisible(true);
        frame.setResizable(true);
        frame.setTitle("我的窗口1");
    frame.setBounds(50,50,400,400);

        JFrame jf = new JFrame();
        //jf.show();//老的方法
        jf.setVisible(true);//新方法
        jf.setResizable(false);
    frame.setTitle("我的窗口2");
jf.setBounds(200,200,500,500);

    }
}

在这里插入图片描述
以上设置完毕,我们发现没法关闭窗口—点击右上角 X号,没反应—
关闭窗口需要加入一个窗口监听器–addWindowListener();
在这里插入图片描述
该方法要求我们传入一个窗口对象–

frame.addWindowListener(new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {
                
            }

            @Override
            public void windowClosing(WindowEvent e) {

            }

            @Override
            public void windowClosed(WindowEvent e) {

            }

            @Override
            public void windowIconified(WindowEvent e) {

            }

            @Override
            public void windowDeiconified(WindowEvent e) {

            }

            @Override
            public void windowActivated(WindowEvent e) {

            }

            @Override
            public void windowDeactivated(WindowEvent e) {

            }
        });

写完之后会自动带出几种实现方法----
往前倒腾一下–
在这里插入图片描述
WindowListener为一个接口,匿名类实现了该对象—
这样做的好处是运行一次即结束,垃圾回收机制会自动将他回收,运行完毕后不占地方;
根据方法我们就知道方法的含义了,这里只说我们现在长用的–打开关闭
在
关于windowsListener,他还有自己的实现类–不过是个抽象类,抽象类的好处是—可以根据需要区覆写接口中的方法
所以
下面贴一下完整代码–

package com.gavin.tank;

import javax.swing.*;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

/**
 * @author : Gavin
 * @date: 2021/7/6 - 07 - 06 - 19:08
 * @Description: com.gavin.tank
 * @version: 1.0
 */
public class Tank {
    public static void main(String[] args) {
        Frame frame = new Frame();
        //frame.show();
        frame.setVisible(true);
        frame.setResizable(true);
        frame.setTitle("我的窗口1");
        frame.setBounds(50,50,400,400);
        frame.addWindowListener(new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {

            }

            @Override
            public void windowClosing(WindowEvent e) {
System.exit(0);
            }

            @Override
            public void windowClosed(WindowEvent e) {

            }

            @Override
            public void windowIconified(WindowEvent e) {

            }

            @Override
            public void windowDeiconified(WindowEvent e) {

            }

            @Override
            public void windowActivated(WindowEvent e) {

            }

            @Override
            public void windowDeactivated(WindowEvent e) {

            }
        });
        JFrame jf = new JFrame();
        //jf.show();//老的方法
        jf.setVisible(true);//新方法
        jf.setResizable(false);
        jf.setTitle("我的窗口2");
        jf.setBounds(200,200,500,500);
        jf.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
            }
        });


    }
}

未完待续–

友情提醒–关于swing编程现在真的用的很少,感兴趣可以看一下,不感兴趣也最好了解一下.

写在本篇最后—
写这个的目的是什么呢?
开发小游戏–以便熟练掌握java基础知识,验证自己掌握多少,仅此而已

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值