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
方法。通過這兩個方法,你可以在窗口里面繪制圖像。