展开全部
java设置游戏菜单可以很朴素 ,也可以比较华丽,简单的写了两个参考效果
分析菜单导航到游戏的过程, 我们62616964757a686964616fe78988e69d8331333431353863可以在同一个容器里实现, 也可以在不同的窗口里实现.
我们要根据具体 需求分析是切换窗口还是切换容器;
朴素版本 使用了的不同窗口的切换来实现 参考的代码如下import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//这个代表扫雷窗口
class SL extends JFrame {
public SL() {
getContentPane().setBackground(Color.BLUE);
setTitle("扫雷");
setSize(MenuFrame.W, MenuFrame.H);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
//这个代表围棋窗口
class WQ extends JFrame {
public WQ() {
getContentPane().setBackground(Color.ORANGE);
setTitle("围棋");
setSize(MenuFrame.W, MenuFrame.H);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
//这个代表菜单选择窗口
public class MenuFrame extends JFrame implements ActionListener {
public static final int W = 300;
public static final int H = 200;
JButton jb1, jb2;
public MenuFrame() {
JPanel jp = new JPanel();
BoxLayout box = new BoxLayout(jp, BoxLayout.Y_AXIS);//垂直方向的布局
jp.setLayout(box);
jb1 = new JButton("益智扫雷");
jb1.addActionListener(this);
jb2 = new JButton("围棋春秋");
jb2.addActionListener(this);
JButton jb3=new JButton("再续前缘");
JButton jb4=new JButton("退隐江湖");
JButton jb5=new JButton("帮助文档");
jp.add(jb1);
jp.add(jb2);
jp.add(jb3);
jp.add(jb4);
jp.add(jb5);
add(jp);
setLayout(new FlowLayout());
setTitle("java Game Center");
setSize(W, H);
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new MenuFrame().setVisible(true);//启动菜单窗口
});
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jb = (JButton) e.getSource();
if (jb == jb1) {
//隐藏关闭菜单窗口
this.setVisible(false);
this.dispose();
//打开扫雷窗口
new SL().setVisible(true);
} else if (jb == jb2) {
this.setVisible(false);
this.dispose();
new WQ().setVisible(true);
}
}
}