俄罗斯方块游戏的菜单栏和工具栏的实现

俄罗斯方块游戏的菜单栏和工具栏的实现,主要帮助我

1,  掌握菜单和工具栏的实现机制;

2,  建立俄罗斯方块游戏菜单类;

3,  建立俄罗斯方块游戏工具栏类(选做);

4,  建立“退出游戏”菜单的事件处理机制,并实现退出功能;

5, 实现对CMenu类的测试。


具体实现代码:

1)

/**
 *作     者:Heloway
 *类     名:CMenu
 *类说明: 菜单栏
 */
public class CMenu {
private JMenuBar menuBar;
private JMenu gameMenu,appMenu,aboutMenu,netMenu,dataMenu;
private JMenuItem newGameMenuItem,exitMenuItem,saveInfoMenuItem,getInfoMenuItem;
private JCheckBoxMenuItem netSendInfoMenu,netRecInfoMenu;
private JMenuItem[] aboutMenuItemArrays;
private String[] aboutStrings=new String[]{"作者:hlw","版本:V1.0"};

private ActionListener listener;

/**
* 创建出所有菜单和菜单项的对象实例
*/
public CMenu() {
menuBar=new JMenuBar();
gameMenu=new JMenu("游戏");
appMenu=new JMenu("应用");
aboutMenu=new JMenu("关于");
netMenu=new JMenu("网络");
dataMenu=new JMenu("数据库");

newGameMenuItem=new JMenuItem("新游戏");
exitMenuItem=new JMenuItem("退出");
saveInfoMenuItem=new JMenuItem("保存游戏信息");
getInfoMenuItem=new JMenuItem("获取游戏信息");

netSendInfoMenu=new JCheckBoxMenuItem("发送信息");
netSendInfoMenu.setSelected(true);
netRecInfoMenu=new JCheckBoxMenuItem("接收信息");

aboutMenuItemArrays=new JMenuItem[2];
for (int i = 0; i < aboutMenuItemArrays.length; i++) {
aboutMenuItemArrays[i]=new JMenuItem(aboutStrings[i]);
}
}

/**
* 创建菜单结构
*/
public JMenuBar createMenuStruct() {
menuBar.add(gameMenu);
menuBar.add(appMenu);
menuBar.add(aboutMenu);

gameMenu.add(newGameMenuItem);
gameMenu.addSeparator();//分隔符
gameMenu.add(exitMenuItem);

appMenu.add(netMenu);
appMenu.add(dataMenu);
netMenu.add(netSendInfoMenu);
netMenu.add(netRecInfoMenu);
dataMenu.add(saveInfoMenuItem);
dataMenu.add(getInfoMenuItem);

for (int i = 0; i < aboutMenuItemArrays.length; i++) {
aboutMenu.add(aboutMenuItemArrays[i]);
}

return menuBar;
}

/**
* 通过这个方法可以获取所有菜单对应的监听器
* @param l
*/
public void addActionListener(ActionListener l) {
if (l!=null) {
this.listener=l;
}
exitMenuItem.addActionListener(l);
}

}

2)

public interface GameListener extends ActionListener{
}

3)

/**
 *作     者: Helloway
 *类     名:CController
 *类说明: 实现GameListener接口
 */
public class CController implements GameListener{
/**
* 实现actionEvent事件的方法
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("退出")) {
System.exit(0);
}
}
}

4)

/**
 *作     者:Helloway
 *类     名:TextMyGame
 *类说明:用户创建窗口开始游戏及测试其他的类的正确性 
 */
public class TestMyGame {
public static void main(String[] args) {
JFrame myFrame=new JFrame("我的俄罗斯方块");
CControlPanel myControlPanel = new CControlPanel();
CMessagePanel myMsgPanel= new CMessagePanel();
                //添加菜单栏
CController myController = new CController();
CMenu myMenu=new CMenu();
myMenu.addActionListener(myController);
myFrame.setJMenuBar(myMenu.createMenuStruct());


Container con=myFrame.getContentPane();
con.add(myControlPanel,BorderLayout.EAST);
con.add(myMsgPanel,BorderLayout.SOUTH);

myFrame.setSize(400, 500);
CGlobal.showCenter(myFrame);
myFrame.setVisible(true);

myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

界面展示:


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值