FiveGameVt.rar

  • PUDN用户
    了解作者
  • Java
    开发工具
  • 740KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 7
    下载次数
  • 2010-04-16 22:57
    上传日期
MVC框架的JAVA五子棋 实现基本的下棋聊天功能。并有计时功能。
FiveGameVt.rar
  • FiveGameVt
  • 2674
  • 蓝色电脑系统图标下载22.ico
    97.3KB
  • 蓝色电脑系统图标下载10.ico
    97.3KB
  • 蓝色电脑系统图标下载7.ico
    97.3KB
  • 蓝色电脑系统图标下载6.ico
    97.3KB
  • 蓝色电脑系统图标下载9.ico
    97.3KB
  • 蓝色电脑系统图标下载5.gif
    97.3KB
  • 蓝色电脑系统图标下载1.ico
    97.3KB
  • 蓝色电脑系统图标下载12.ico
    97.3KB
  • 蓝色电脑系统图标下载11.ico
    97.3KB
  • 蓝色电脑系统图标下载2.ico
    97.3KB
  • 蓝色电脑系统图标下载0.ico
    97.3KB
  • 蓝色电脑系统图标下载14.ico
    97.3KB
  • 蓝色电脑系统图标下载3.ico
    97.3KB
  • 蓝色电脑系统图标下载15.ico
    97.3KB
  • 蓝色电脑系统图标下载8.ico
    97.3KB
  • 蓝色电脑系统图标下载20.ico
    97.3KB
  • 蓝色电脑系统图标下载13.ico
    97.3KB
  • 蓝色电脑系统图标下载19.ico
    97.3KB
  • 蓝色电脑系统图标下载4.ico
    97.3KB
  • 蓝色电脑系统图标下载17.ico
    97.3KB
  • 蓝色电脑系统图标下载21.ico
    97.3KB
  • 蓝色电脑系统图标下载18.ico
    97.3KB
  • 蓝色电脑系统图标下载16.ico
    97.3KB
  • game_control
  • Control.java
    3.3KB
  • Control.class
    3.1KB
  • game_model
  • FiveGameModel.class
    2.8KB
  • FiveGameModel.java
    3.7KB
  • game_view
  • ClientSkt.java
    7.5KB
  • ChessInterface.class
    6.3KB
  • MyGameFrame.java
    23.2KB
  • MyGameFrame$2.class
    2.3KB
  • MyPanel$2.class
    1.1KB
  • WelcomFrame$4.class
    927B
  • TimerSkt.java
    5.5KB
  • MyGameFrame.class
    13.6KB
  • ServerSkt.java
    10KB
  • MyPanel.java
    5.7KB
  • MyGameFrame$5.class
    2KB
  • MyGameFrame$3.class
    1.4KB
  • MyGameFrame$1.class
    1.6KB
  • WelcomFrame.class
    7.1KB
  • ServerSkt.class
    5.8KB
  • MyPanel.class
    5.3KB
  • ChessInterface.java
    9.5KB
  • MyPanel$1.class
    667B
  • WelcomFrame.java
    10KB
  • ChessInterface$1.class
    1.7KB
  • ClientSkt.class
    5.2KB
  • MyGameFrame$4.class
    1.1KB
  • MyGameFrame$7.class
    1.1KB
  • WelcomFrame$3.class
    1.1KB
  • TimerSkt.class
    3.2KB
  • WelcomFrame$1.class
    1012B
  • MyGameFrame$8.class
    1.3KB
  • WelcomFrame$2.class
    1.1KB
  • MyGameFrame$6.class
    1.3KB
  • ChessInterface$2.class
    1.6KB
  • .classpath
    226B
  • .project
    504B
内容介绍
package game_view; import game_control.Control; import game_model.FiveGameModel; import java.awt.BorderLayout; import java.awt.Font; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.KeyStroke; import javax.swing.JTextField; import java.awt.GridBagLayout; import javax.swing.JLabel; import java.awt.GridBagConstraints; import javax.swing.BorderFactory; import java.awt.Color; import javax.swing.JButton; import javax.swing.JTextArea; import java.awt.SystemColor; import java.util.Calendar; import javax.swing.JScrollPane; import javax.swing.SwingConstants; import java.awt.event.KeyEvent; import java.awt.Insets; import javax.swing.border.BevelBorder; /*游戏窗口 * 游戏的主界面 包括聊天板 显示下棋双方的信息 和各自的计时 * 对于客户端还有准备按钮 默认的服务端先下棋 但由客户端准备后开始 服务端没有准备按钮 * 其中还包括认输按钮 若双方正在下棋 则不能强制退出 只能在认输的后方能退出 * 其他还有菜单条 集体有文件 编辑和帮助菜单 迫于时间急促 故只有三项 在文件中有重新开始 保存 退出三个菜单项 * 其中保存菜单项和没帮助菜单没有设置*/ public class MyGameFrame extends JFrame { private static final long serialVersionUID = 1L; //内嵌的棋盘类 private MyPanel view=null; //可以下棋标志 private boolean iscanplay=false; private JPanel jContentPane = null; Control cont; //处理计时的线程 TimerSkt ts=null; //客户和服务端的计时 long servertimer=0,clienttimer=0; //客户端的计时标志 boolean serverendoftimer = false; //服务端的计时标志 boolean clientendoftimer=false; private JMenuBar jJMenuBar = null; private JMenu jMenu = null; private JMenu jMenu1 = null; private JMenu jMenu2 = null; private JMenuItem jMenuItem2 = null; private JLabel jLabel = null; private JPanel jPanel1 = null; private JPanel jPanel2 = null; private JTextField jTextField = null; private JTextField jTextField1 = null; private JMenuItem jMenuItem3 = null; private JMenuItem jMenuItem = null; private JTextArea jTextArea = null; private JLabel jLabel21 = null; private JPanel jPanel3 = null; private JPanel jPanel41 = null; private JTextField jTextField2 = null; private JButton jButton = null; private JLabel jLabel1 = null; private JScrollPane jScrollPane = null; private JButton jButton1 = null; private JButton jButton2 = null; private JMenuItem jMenuItem1 = null; private JLabel jLabel2 = null; public MyGameFrame(Control cont) { super(); this.cont=cont; initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setBounds(50,100,669, 462); this.setJMenuBar(getJJMenuBar()); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); //显示双方信息 if(getCont().isIamservercont()){ if(getCont().getBlackOrWhite()==1) { getJTextField().setText(getCont().getSs().servercf.getServername()); getJTextField1().setText(getCont().getSs().clientname); } else { getJTextField1().setText(getCont().getSs().servercf.getServername()); getJTextField().setText(getCont().getSs().clientname); } } else{ if(getCont().getBlackOrWhite()==1) { getJTextField().setText(getCont().getCs().clientcf.getClientname()); getJTextField1().setText(getCont().getCs().servername); } else { getJTextField1().setText(getCont().getCs().clientcf.getClientname()); getJTextField().setText(getCont().getCs().servername); } } //添加窗口监听者 处理退出事件 this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { //前提在游戏结束时 if(getCont().flag_0f_end){ if(getCont().isIamservercont()){ int result=JOptionPane.showConfirmDialog(view, "确定关闭窗口?", "关闭窗口", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(result==0) getCont().getSs().dataout("quit"); } else{ int result=JOptionPane.showConfirmDialog(view, "确定关闭窗口?", "关闭窗口", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(result==0){ getCont().getCs().dataout("quit"); System.exit(0); } } } else { String message="游戏进行中,禁止退出!!!"; //显示信息 JOptionPane.showMessageDialog(null, message, "退出错误",JOptionPane.PLAIN_MESSAGE); } } }); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(getView(), BorderLayout.CENTER); jContentPane.add(getJPanel1(), BorderLayout.SOUTH); //设置当前下棋方 if(getCont().isIamservercont()){ jLabel.setText("当前Player: "+getCont().getSs().servercf.getServername()); } else { jLabel.setText("当前Player: "+getCont().getCs().servername); } jContentPane.add(getJPanel2(), BorderLayout.EAST); jContentPane.add(getJPanel3(), BorderLayout.WEST); } return jContentPane; } /** * This method initializes mypanel * * @return javax.swing.JPanel */ //获取棋盘类 public MyPanel getView() { if (this.view == null) { this.view=new MyPanel(this); view.setBackground(new Color(255, 102, 0)); view.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); //接受鼠标在棋盘上单击后事件 view.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) { //前提是当前的位置没有棋子并且允许下棋 if((getCont().getModel().getData()[MyPanel.vrow][MyPanel.vcol]==FiveGameModel.Space)&&isIscanplay()){ view.setVnumber(); //下棋步数增1 //标记是自己下的棋 view.isself=true; //显示当前玩家名字 if(getCont().isIamservercont()){ jLabel.setText("当前Player: "+getCont().getSs().clientname); } else{ jLabel.setText("当前Player: "+getCont().getCs().servername); } //发送数据 并构成信息结构 String completevrow="0",completevcol="0"; if(MyPanel.vrow<10&&MyPanel.vcol>=10)completevcol=""; if(MyPanel.vcol<10&&MyPanel.vrow>=10)completevrow=""; if(MyPanel.vcol>=10&&MyPanel.vrow>=10){ completevcol=""; completevrow=""; } //服务端发送数据 if(getCont().isIamservercont()){ getCont().getSs().dataout( completevrow+String.valueOf(MyPanel.vrow) +completevcol+String.valueOf(MyPanel.vcol)); } else //客户端发送数据 { getCont().getCs().dataout( completevrow+String.valueOf(MyPanel.vrow) +completevcol+String.valueOf(MyPanel.vcol)); } //相应的一方计时停止 if(getCont().isIamservercont()) serverendoftimer=false; else clientendoftimer=false; //在自己的棋盘上画出棋子 getCont().setChess( MyPanel.vrow,MyPanel.vcol); //设置不能再下棋 iscanplay=false; } } }); }//end of if return view; } /** * This method initializes jJMenuBar * * @return javax.swing.JMenuBar */ private JMenuBar getJJMenuBar() { if (jJMenuBar == null) { jJMenuBar = new JMenuBar(); jJMenuBar.setBackground(SystemColor.controlHighlight); jJMenuBar.setFont(new Font("Dialog", Font.BOLD | Font.ITALIC, 14)); jJMenuBar.setToolTipText("�
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...