⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame1.java~5~

📁 俄罗斯方块游戏,大学时写的,支持单机及点对点网络对战!同时我还在里面加入了使用技能的功能!不过有一个缺点,呵呵好象代码写的不够严谨,所以现在性能很低,我一直也没有优化它!
💻 JAVA~5~
📖 第 1 页 / 共 2 页
字号:
package ct;import java.awt.*;import java.awt.event.*;import javax.swing.*;import com.borland.jbcl.layout.*;import javax.swing.border.*;import java.io.*;import java.util.*;import server.*;import client.*;//游戏主窗体public class Frame1 extends JFrame implements NetRead{  //J9自动定义变量  JPanel contentPane;  XYLayout xYLayout1 = new XYLayout();  Border border1;  Border border2;  JLabel jLabel1 = new JLabel();  JButton jButton2 = new JButton();  JButton jButton3 = new JButton();  JButton jButton1 = new JButton();  JButton jButton4 = new JButton();  Border border3;  JButton jButton5 = new JButton();  JButton jButton6 = new JButton();  JButton jButton7 = new JButton();  Border border4;  Border border5;  Border border6;  Border border7;  Border border8;  Border border9;  Border border10;  JLabel jLabel2 = new JLabel();  JButton jButton8 = new JButton();  JButton jButton9 = new JButton();  JButton jButton10 = new JButton();  JTextField jTextField1 = new JTextField();  Border border11;  Border border12;  Border border13;  Border border14;  TitledBorder titledBorder1;  private java.applet.AudioClip audioClip; //定义AudioClip的一个实例引用  //JScrollPane jScrollPane1 = new JScrollPane();  //自定义变量  Frame1 tFrame;  java.net.URL url; //创建一个URL对象  String name; //用于保存文件路径  connectDialog dd;  Tetrics tetrics=new Tetrics(tFrame);//实例化Tetrics  nextSquare ns=tetrics.nextPiece;  oGameField m_oGameArea=tetrics.oGameArea;//对手游戏区 //用于网络   public MyServer m_server;   public MyClient m_client;   //  public static final int NOCONNECT=0,SERVER=1,CLIENT=2;    public int m_nNetStatus=NOCONNECT;  JScrollPane jScrollPane1 = new JScrollPane();  JTextArea jTextArea1 = new JTextArea();  JTextField jTextField2 = new JTextField();//int cx,cc;  //Construct the frame  public Frame1() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();      myInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //  private void myInit()  {//自定义初始化      JPanel gameP=new JPanel();//声名容器      gameP.setLayout(null);//设置容器布局方式      tetrics.setBounds(360,134,tetrics.WIDTH,tetrics.HEIGHT);//设置游戏区域大小      ns.setBounds(241,51,ns.WIDTH,ns.HEIGHT);      m_oGameArea.setBounds(25,35,m_oGameArea.WIDTH,m_oGameArea.HEIGHT);      gameP.add(tetrics);//添加主游戏实例      gameP.add(ns);      gameP.add(m_oGameArea);      getContentPane().add(gameP);//得到主容器  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();  //  contentPane.setBorder(new MatteBorder(new ImageIcon(new java.net.URL("file:///E:/ti.gif"))));  //  border1 = new MatteBorder(new ImageIcon(new java.net.URL("file:///c:/ti.gif")));    border2 = new MatteBorder(null);    border3 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 151, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border4 = new EtchedBorder(EtchedBorder.RAISED,new Color(47, 85, 250),new Color(23, 42, 122));    border5 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 85, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border6 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 85, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border7 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 85, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border8 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 85, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border9 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 85, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border10 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(67, 121, 255),new Color(47, 85, 250),new Color(16, 29, 85),new Color(23, 42, 122));    border11 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(44, 255, 255),new Color(31, 235, 255),new Color(10, 80, 114),new Color(15, 115, 163));    border12 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(44, 255, 255),new Color(31, 235, 255),new Color(10, 80, 114),new Color(15, 115, 163));    border13 = BorderFactory.createBevelBorder(BevelBorder.RAISED,new Color(44, 255, 255),new Color(31, 235, 255),new Color(10, 80, 114),new Color(15, 115, 163));    border14 = new EtchedBorder(EtchedBorder.RAISED,new Color(31, 235, 255),new Color(15, 115, 163));    titledBorder1 = new TitledBorder("");    contentPane.setLayout(xYLayout1);  //  cx=getToolkit().getScreenSize().height;//取得窗体高   // cc=getToolkit().getScreenSize().width;//取得窗体宽   this.setSize(new Dimension(810,665));   setResizable(false);    //setVisible(true);    this.setTitle("YY方块");    jLabel1.setBackground(new Color(22, 165, 233));    jLabel1.setIcon(new ImageIcon(new java.net.URL("file:///E:/YY方块/ct/chuangti1.jpg")));    jLabel1.setText("");    jButton2.setBackground(new Color(33, 60, 175));    jButton2.setFont(new java.awt.Font("Dialog", 0, 15));    jButton2.setForeground(Color.orange);    jButton2.setBorder(border5);    jButton2.setActionCommand("练习");    jButton2.setText("练习");    jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));    jButton3.setText("帮助");    jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this));    jButton3.setForeground(Color.orange);    jButton3.setBorder(border3);    jButton3.setFont(new java.awt.Font("Dialog", 0, 15));    jButton3.setBackground(new Color(33, 60, 175));    jButton1.setBackground(new Color(33, 60, 175));    jButton1.setFont(new java.awt.Font("Dialog", 0, 15));    jButton1.setForeground(Color.orange);    jButton1.setBorder(border6);    jButton1.setText("邀请");    jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));    jButton4.setBackground(new Color(33, 60, 175));    jButton4.setFont(new java.awt.Font("Dialog", 0, 15));    jButton4.setForeground(Color.orange);    jButton4.setBorder(border7);    jButton4.setText("关于");    jButton4.addActionListener(new Frame1_jButton4_actionAdapter(this));    jButton5.setBackground(new Color(33, 60, 175));    jButton5.setFont(new java.awt.Font("Dialog", 0, 15));    jButton5.setForeground(Color.orange);    jButton5.setBorder(border8);    jButton5.setText("退出");    jButton5.addActionListener(new Frame1_jButton5_actionAdapter(this));    jButton6.setBackground(new Color(33, 60, 175));    jButton6.setFont(new java.awt.Font("Dialog", 0, 15));    jButton6.setForeground(Color.orange);    jButton6.setBorder(border9);    jButton6.setText("功能");    jButton6.addActionListener(new Frame1_jButton6_actionAdapter(this));    jButton7.setBackground(new Color(33, 60, 175));    jButton7.setFont(new java.awt.Font("Dialog", 0, 15));    jButton7.setForeground(Color.orange);    jButton7.setBorder(border10);    jButton7.setText("开始");    jButton7.addActionListener(new Frame1_jButton7_actionAdapter(this));    jLabel2.setText("YY音乐吧");    jButton8.setBackground(new Color(22, 165, 233));    jButton8.setFont(new java.awt.Font("Dialog", 0, 9));    jButton8.setForeground(Color.orange);    jButton8.setBorder(border13);    jButton8.setText("打开");    jButton8.addActionListener(new Frame1_jButton8_actionAdapter(this));    jButton9.setBackground(new Color(22, 165, 233));    jButton9.setFont(new java.awt.Font("Dialog", 0, 9));    jButton9.setForeground(Color.orange);    jButton9.setBorder(border11);    jButton9.setToolTipText("");    jButton9.setText("播放");    jButton9.addActionListener(new Frame1_jButton9_actionAdapter(this));    jButton10.setBackground(new Color(22, 165, 233));    jButton10.setFont(new java.awt.Font("Dialog", 0, 9));    jButton10.setForeground(Color.orange);    jButton10.setBorder(border12);    jButton10.setText("停止");    jButton10.addActionListener(new Frame1_jButton10_actionAdapter(this));    jTextField1.setBackground(new Color(22, 165, 233));    jTextField1.setBorder(border14);    jTextField1.setText("");    contentPane.setBackground(new Color(22, 165, 233));    contentPane.setEnabled(true);    contentPane.setFont(new java.awt.Font("Dialog", 0, 11));    contentPane.setAlignmentX((float) 0.1);    contentPane.setAlignmentY((float) 0.1);    contentPane.setBorder(BorderFactory.createLineBorder(Color.black));    contentPane.setDebugGraphicsOptions(0);    contentPane.setDoubleBuffered(true);    contentPane.setMinimumSize(new Dimension(830, 630));    contentPane.setOpaque(true);    contentPane.setPreferredSize(new Dimension(830, 630));    contentPane.setToolTipText("");    contentPane.setVerifyInputWhenFocusTarget(true);    contentPane.setActionMap(null);    jTextArea1.setBackground(new Color(31,58,173));    jTextArea1.setText("");    jTextField2.setBackground(new Color(31,58,173));    jTextField2.setText("");    jTextField2.addActionListener(new Frame1_jTextField2_actionAdapter(this));    jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);    jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);    jScrollPane1.getViewport().setBackground(Color.black);    jScrollPane1.setNextFocusableComponent(this);    jScrollPane1.setRequestFocusEnabled(true);    contentPane.add(jButton2,  new XYConstraints(684, 537, 72, 40));    contentPane.add(jButton3, new XYConstraints(684, 489, 72, 40));    contentPane.add(jButton1,  new XYConstraints(197, 418, 70, 29));    contentPane.add(jButton4,         new XYConstraints(274, 456, 36, 68));    contentPane.add(jButton5,     new XYConstraints(195, 543, 71, 27));    contentPane.add(jButton6,   new XYConstraints(148, 460, 34, 68));    contentPane.add(jButton7,  new XYConstraints(209, 473, 41, 41));    contentPane.add(jLabel2,  new XYConstraints(18, 594, 96, 24));    contentPane.add(jButton8,                       new XYConstraints(459, 596, 52, 20));    contentPane.add(jButton9,        new XYConstraints(518, 597, 52, 20));    contentPane.add(jButton10,       new XYConstraints(579, 597, 52, 19));    contentPane.add(jTextField1,    new XYConstraints(124, 600, 311, 15));    contentPane.add(jScrollPane1,   new XYConstraints(637, 139, 151, 152));    contentPane.add(jTextField2,  new XYConstraints(636, 299, 154, 21));    contentPane.add(jLabel1,               new XYConstraints(1, 0, 813, 638));    jScrollPane1.getViewport().add(jTextArea1, null);  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  public void readStr(String str) {     //如果读来的数据是对方的状态信息     if(str.startsWith("Status:"))     {         int[] nRivalField=new int[tetrics.m_nCols*(tetrics.m_nRows+4)];         str=str.substring(7,str.length());         StringTokenizer st=new StringTokenizer(str,"|");         int i=0;         try         {             while(st.hasMoreTokens())             {                   nRivalField[i]=Integer.parseInt(st.nextToken());                   i++;             }         }catch(Exception e){}         i=0;         for(int col=0;col<tetrics.m_nCols;col++)             for(int row=0;row<tetrics.m_nRows;row++)             {                 m_oGameArea.m_nField[col][row]=nRivalField[i];       ///////////////////////////////////////////////////////////////////////////////////////                 i++;             }     }     //如果读来的数据是对方消去一行的消息。     else if(str.equals("RemoveLine"))     {      //   v.addRandomLine();     }     //如果读来的数据是对方开始游戏的信息     else if(str.equals("StartGame"))     {         tetrics.start();     }     //如果读来的数据是对方暂停游戏的信息     else if(str.equals("PauseGame"))     {         tetrics.pause();     }     //如果读来的数据是对方中止游戏的信息     else if(str.equals("StopGame"))     {         tetrics.stop();     }     //如果读来的数据是对方要求改变游戏级别的信息     else if(str.startsWith("Level:"))     {         str=str.substring(6,str.length());         try{             tetrics.setPlayLevel(Integer.parseInt(str));         }         catch(Exception e){}     }     //如果读来的数据是对方对你谈话的内容     else if(str.startsWith("Talk:"))     {        str=str.substring(5,str.length());        if(m_nNetStatus==CLIENT)        jTextArea1.append("服务器:"+str+"\n");        else if (m_nNetStatus==SERVER)         jTextArea1.append("客户机:"+str+"\n");        else         jTextArea1.append("我:"+str+"\n");     }     //如果读来的数据是对方的游戏已经结束的信息     else if(str.startsWith("GameOver:"))     {         str=str.substring(9,str.length());         if(tetrics.m_bGameInPlay)         {             tetrics.m_bGameInPlay=false;             tetrics.stop();             sendStr("GameOver:"+tetrics.m_nTheScore);         }         try{             int nRivalScore=Integer.parseInt(str);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -