highlight: xcode
theme: vuepress
前言
本系列文章带领 Java 初学者学习使用 Java 语言结合 Swing 技术以及设计模式开发一款经典小游戏——坦克大战。通过这个小游戏,你可以学会很多实用的设计模式思想,并且提高你的编码水平。
熟悉Frame
Frame
类是 Java Swing 技术的核心类,它表示一个窗口。然后开发者可以在这个窗口里面画各种图形,添加各种组件。
首先,我们使用 Frame
类来创建一个窗口。我们既然要开发坦克大战游戏,那么不妨把这个游戏窗口命名为 TankFrame
。
TankFrame
声明如下,它继承了 Frame
类。然后我们重写构造方法:
```java public class TankFrame extends Frame {
public TankFrame() throws HeadlessException {setVisible(true);setSize(800, 600);setResizable(false);setTitle("War of Tank");setLocationRelativeTo(null);addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});
}
} ```
简单介绍一下构造方法的代码。setVisible(true);
表示让窗口显示出来,因为默认窗口是隐藏的。setSize
方法表示可以设置窗口的宽高。setResizable
表示是否可以重新拖拽窗口的宽高。这里设置为了 false
,表示不可以重新设置宽高。setTitle
表示设置窗口的标题。setLocationRelativeTo
表示设置窗口的相对位置,相对于 null
表示窗口在屏幕正中间。addWindowListener
表示添加窗口监听器,传入 WindowAdapter
的构造器,重写 windowClosing
方法,这样在点击窗口的叉号时可以退出进程也就是 JVM。
在主方法里面运行一下看看:
```java public class FrameDemo {
public static void main(String[] args) throws InterruptedException {TankFrame frame = new TankFrame();
}
} ```
一个简单的 Swing 窗口就启动成功了。在下一节,你会了解到窗口的 paint
和 repaint
方法。通过这两个方法,你可以在窗口里面绘制图像。