package mm
import java.io.*
import java.awt.*
import javax.swing.*
public class HelloWorld {
public static void main(String[] args){
JFrame w=new JFrame("SKH")
Container con=w.getContentPane()
//Color
con.setBackground(Color.pink)
//Location
w.setBounds(60, 100, 388, 308)
//可见性
w.setVisible(true)
//单击右上角容器的行为
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
//创建菜单项
JMenuBar menubar=new JMenuBar()
JMenu menu,submenu
JMenuItem a,b
menu=new JMenu("菜单")
submenu=new JMenu("子菜单")
a=new JMenuItem("菜单项1")
b=new JMenuItem("菜单项2")
menu.add(a)
//添加分割符;
menu.addSeparator()
menu.add(b)
menu.addSeparator()
menu.add(submenu)
submenu.add(new JMenuItem("QWQ"))
menubar.add(menu)
w.setJMenuBar(menubar)
}
}
5步。1、创建菜单(如文件)
2、创建菜单项(如新建、打开、保存)
3、将菜单项添加到菜单(如将新建、打开、保存菜单项添加到文件菜单)
4、创建菜单栏,将菜单添加到菜单栏
5、设置窗口的菜单栏
核心代码:
//创建窗口
JFrame w=new JFrame("包含菜单栏的窗口")
//创建文件菜单
JMenu file=new JMenu("文件")
//创建新建菜单项
JMenuItem n=new JMenuItem("新建")
//创建打开菜单项
JMenuItem o=new JMenuItem("打开")
//创建保存菜单项
JMenuItem s=new JMenuItem("保存")
//将新建菜单项添加到文件菜单
file.add(n)
//将打开菜单项添加到文件菜单
file.add(o)
//将保存菜单项添加到文件菜单
file.add(s)
//创建菜单栏
JMenuBar br=new JMenuBar()
//将文件菜单添加到菜单栏
br.add(file)
//为窗口设置菜单栏
w.setJMenuBar(br)
java设置游戏菜单可以很朴素 ,也可以比较华丽,简单的写了两个参考效果
分析菜单导航到游戏的过程, 我们可以在同一个容器里实现, 也可以在不同的窗口里实现.
我们要根据具体 需求分析是切换窗口还是切换容器
朴素版本 使用了的不同窗口的切换来实现 参考的代码如下
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)
}
}
}