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)
是一个方法调用语句,其中setSize
是JFrame
类的方法,用于设置窗口的大小。而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=70e680aaeedc45cb797fd52fdd25367chttp://【【Java项目】不到两小时用Java做出超级玛丽小游戏_手把手教你开发游戏_超详细保姆级教程_Java编程_Java游戏开发-Java基础-Java练手项目】https://www.bilibili.com/video/BV1DZ4y1Y73M?p=2&vd_source=70e680aaeedc45cb797fd52fdd25367c