Java Swing 游戏框架 MyFrame 类代码解析
Java Swing 游戏框架 MyFrame 类代码解析
本代码展示了一个名为 MyFrame 的 Java Swing 游戏框架的类,该类负责创建游戏窗口并处理游戏逻辑。
构造函数
public MyFrame() throws Exception {
int i = modelChoose();
if (i == -1) {
System.exit(0); // 程序退出
}
myPanel = new MyPanel(i);
new Thread(myPanel).start();
this.setSize(1300, 820);
this.add(myPanel);
this.addKeyListener(myPanel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
// 监听关闭窗口事件
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
try {
Vector<EnemyTank> tanks = myPanel.getEnemyTanks();
for (int i = 0; i < tanks.size(); i++) {
tanks.get(i).getShots().clear();
}
// 对象输出流
oos = new ObjectOutputStream(new FileOutputStream(new File(MyFrame.class.getResource('../recorder1.txt').toURI())));
// 将记录对象 Recorder 写到文件
oos.writeObject(myPanel.getRecorder());
} catch (Exception e1) {
e1.printStackTrace();
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
}
}
});
}
构造函数主要执行以下操作:
- 调用
modelChoose()方法选择游戏关卡。 - 根据选择的关卡创建
MyPanel对象,并将其添加到JFrame中。 - 启动
MyPanel线程。 - 设置窗口大小和可见性。
- 添加键盘监听器和窗口关闭监听器。
窗口关闭监听器在用户关闭窗口时触发,用于清理游戏资源,并将游戏进度保存到文件。
关卡选择方法
private int modelChoose() {
Object[] options = {'模式一', '模式二', '模式三', '退出'};
int m = JOptionPane.showOptionDialog(null, '请选择游戏模式', '选择模式', JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if (m == 3) {
return -1;
} else {
return m;
}
}
modelChoose() 方法使用 JOptionPane 弹出对话框,让用户选择游戏模式。如果用户选择“退出”,则返回 -1,否则返回用户选择的模式编号。
代码解析总结
本代码示例展示了如何使用 Java Swing 创建游戏界面、添加面板、设置窗口大小和处理窗口关闭事件。通过对代码的解析,我们可以更好地理解 Java Swing 游戏框架的实现机制。
原文地址: https://www.cveoy.top/t/topic/oZRO 著作权归作者所有。请勿转载和采集!