java基础-拼图小游戏
写游戏不是目的,而是把之前学习的内容联系起来。
一、创建页面
(1)如果这样创建,代码都集中在main函数里面,后期想要修改代码不方便,不利于维护。
public class Test {
public static void main(String[] args) {
//1、创建一个游戏的主页面
//JFrame是一个类
//属性(宽、高) 行为
JFrame gameJFrame = new JFrame();
gameJFrame.setSize(603, 680);
gameJFrame.setVisible(true);
//2、创建一个登陆界面
JFrame loginJFrame = new JFrame();
loginJFrame.setSize(488,430);
loginJFrame.setVisible(true);
//3、创建一个注册界面
JFrame registerJFrame = new JFrame();
registerJFrame.setSize(488,500);
registerJFrame.setVisible(true);
}
}
(2)可以分别放到不同类里面,分离代码,方便以后修改。用继承的方式。
public class LoginJFrame extends JFrame {
//this代表调用者的地址,因为没有创建对象,
//所以需要使用this使用父类的方法。如果本类没有同名方法,去掉this也可以
public LoginJFrame(){
this.setSize(488,430);
this.setVisible(true);
}
}
public class App extends JFrame {
public static void main(String[] args) {
/*
用继承改写主页面。可以分离相关代码,方便以后修改
*/
//1、创建一个游戏的主页面
new GameJFrame();
//2、创建一个登陆界面
new LoginJFrame();
//3、创建一个注册界面
new RegisterJFrame();
}
}
二、界面设置
同理,可以将界面设置和界面搭建写到方法当中,后期便于优化。(提取方法快捷键:ctrl+Alt+m)
public class GameJFrame extends JFrame {
public GameJFrame(){
initJFrame();
initJMenuBar();
//让界面显示出来,建议写在最后
this.setVisible(true);
}
private void initJMenuBar() {
//创建整个的菜单对象
JMenuBar jMenuBar =new JMenuBar();
//创建菜单上面的两个选项的对象(功能 关于我们)
JMenu functionJMenu =new JMenu("功能");
JMenu aboutJMenu=new JMenu( "关于我们");
//创建选项下面的条目对象
JMenuItem replayItem= new JMenuItem("重新游戏");
JMenuItem reLoginItem=new JMenuItem("重新登录");
JMenuItem closeItem=new JMenuItem("关闭游戏");
JMenuItem accountItem=new JMenuItem("公众号");
//将每一个选项下面的条目天极爱到选项当中
functionJMenu.add(replayItem);
functionJMenu.add(reLoginItem);
functionJMenu.add(closeItem);
aboutJMenu.add(accountItem);
//将菜单里面的两个选项添加到菜单当中
jMenuBar.add(functionJMenu);
jMenuBar.add(aboutJMenu);
//给整个界面设置菜单
this.setJMenuBar(jMenuBar);
}
private void initJFrame() {
//设置界面的宽高
this.setSize(603,680);
//设置界面的标题
this.setTitle("拼图单机版 v1.0");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置关闭模式
this.setDefaultCloseOperation(3);
}
}