Java超级玛丽小游戏制作过程讲解 第一天 创建窗口

package com.sxt;

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class MyFrame extends JFrame implements KeyListener {
    //设置窗口的大小为800*600
    public MyFrame() {
        this.setSize(800, 600);
        //设置窗口中显示
        this.setLocationRelativeTo(null);
        //设置窗口的可见性
        this.setVisible(true);
        //设置点击窗口上的关闭键,结束此程序
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置窗口大小不可变
        this.setResizable(false);
        //向窗口添加监听器
        this.addKeyListener(this);
        //设置窗口名称
        this.setTitle("超级玛丽");

    }

    public static void main(String[] args) {
        MyFrame myframe = new MyFrame();
    }



    @Override
    public void keyTyped(KeyEvent e) {

    }

    @Override
    public void keyPressed(KeyEvent e) {

    }

    @Override
    public void keyReleased(KeyEvent e) {

    }
}

1.基础知识:在Java中,继承是一种机制它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以获得父类的特性,同时可以添加自己的额外功能或重写父类的方法。

public class MyFrame extends JFrame 

通过使用关键字`extends`,`MyFrame`类继承了`JFrame`类。

而`JFrame`是Swing库中提供的一个顶层窗口容器类,它提供了创建和管理图形用户界面(GUI)窗口的功能。通过继承`JFrame`类,`MyFrame`类可以获得`JFrame`的属性和方法,从而方便地创建和定制GUI窗口。

总结来说,继承`JFrame`类的好处包括:

1. 提供了一个可视化的窗口容器:`JFrame`类封装了创建和管理窗口所需的细节,使开发者能够轻松创建GUI窗口。

2. 继承已有的功能:通过继承`JFrame`类,可以直接使用`JFrame`类的方法和属性,避免了重新编写与窗口相关的基本功能。

3. 定制窗口行为:继承后,可以重写父类中的方法,以实现特定的窗口行为或自定义功能。比如,可以重写`paint()`方法来绘制自定义的界面元素。

通过继承`JFrame`类,可以更方便地创建和管理GUI窗口,并在此基础上进行定制化开发,以满足自己的需求。

2. this指的是当前对象自身,即调用该方法的对象。
//设置窗口的大小为800*600
this.setSize(800, 600);

setSize(1000,800)是一个方法调用语句,其中setSizeJFrame类的方法,用于设置窗口的大小。而this.setSize(1000,800)表示在当前对象上调用setSize方法,并传入参数1000和800来设置窗口的宽度和高度。

因此,this.setSize(1000,800)中的this指的是当前对象,即MyFrame类的实例对象。当你在创建MyFrame对象后,通过该对象调用setSize(1000,800)时,this就代表该对象本身,即对该对象进行窗口大小的设置操作。

3. 在提供的代码中,`implements KeyListener`表示`MyFrame`类实现了`KeyListener`接口。通过实现`KeyListener`接口,`MyFrame`类可以监听和响应键盘事件。
public class MyFrame extends JFrame implements KeyListener 

`KeyListener`接口定义了一组方法,用于处理键盘事件的回调。这些方法包括:

1). `keyTyped(KeyEvent e)`: 当用户在焦点组件上敲击键盘按键时调用,键盘按键产生一个字符输出。

2). `keyPressed(KeyEvent e)`: 当用户按下键盘上的一个键时调用。

3). `keyReleased(KeyEvent e)`: 当用户释放键盘上的一个键时调用。

通过实现`KeyListener`接口,可以重写这些方法,并在相应的事件发生时执行自定义的操作。例如,可以在`keyPressed()`方法中处理特定的按键操作,或者在`keyTyped()`方法中捕获并处理输入的字符。

在`MyFrame`类中实现`KeyListener`接口的主要目的是为了能够对键盘事件做出响应。通过注册监听器(使用`addKeyListener()`方法),当用户在窗口中按下、释放或键入键盘按键时,系统会触发相应的`KeyListener`方法,从而允许编写代码来处理这些事件。

需要注意的是,在使用`KeyListener`时,要确保窗口或组件具有焦点,以便能够正确地接收键盘事件。

声明:小游戏源码来自b站视频(up:编程学习会员Q),本文仅根据源码做知识性补充与注解。如存在不当使用的情况,请随时联系删除。http://【【Java项目】不到两小时用Java做出超级玛丽小游戏_手把手教你开发游戏_超详细保姆级教程_Java编程_Java游戏开发-Java基础-Java练手项目】https://www.bilibili.com/video/BV1DZ4y1Y73M?p=2&vd_source=70e680aaeedc45cb797fd52fdd25367cicon-default.png?t=N6B9http://【【Java项目】不到两小时用Java做出超级玛丽小游戏_手把手教你开发游戏_超详细保姆级教程_Java编程_Java游戏开发-Java基础-Java练手项目】https://www.bilibili.com/video/BV1DZ4y1Y73M?p=2&vd_source=70e680aaeedc45cb797fd52fdd25367c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值