📄 frame1.java~5~
字号:
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 + -