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

📄 gameframe.java~35~

📁 java写的一个24点的小游戏,自己做的,有点简单,但是功能实现比较好
💻 JAVA~35~
字号:
package GameClient;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.Socket;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.IOException;
import ClientMessage.RequestCard;
import ClientMessage.Hold;
import ClientMessage.GameNotWant;
import GameServer.Card;
import ClientMessage.GameWant;
import ServerMessage.TurnMessage;
import ServerMessage.WinMessage;
import ServerMessage.StartAgain;
import ServerMessage.LoseMessage;
import ServerMessage.GameStart;
import ServerMessage.GameOver;
import ServerMessage.TieMessage;
import javax.swing.UIManager;
import java.awt.*;
import java.io.IOException;
import javax.swing.JOptionPane;
import GameServer.Result;
import GameServer.Deck;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */


public class GameFrame extends JFrame implements Runnable  {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel1 = new JPanel();
  JPanel jPanel2 = new JPanel();
  JLabel gamer1name = new JLabel();
  JLabel gamer2name = new JLabel();
  JPanel jPanel3 = new JPanel();
  BorderLayout borderLayout4 = new BorderLayout();
  FlowLayout flowLayout1 = new FlowLayout();
  JPanel jPanel4 = new JPanel();
  JButton Hold1 = new JButton();
  JButton Want1 = new JButton();
  FlowLayout flowLayout2 = new FlowLayout();
  JPanel jPanel5 = new JPanel();
  BorderLayout borderLayout2 = new BorderLayout();
  JPanel jPanel6 = new JPanel();
  Brand brand=new Brand();

    Socket sock1;
    Socket sock2;
    Thread listener;
    ObjectInputStream in1;
    ObjectOutputStream out1;
    ObjectInputStream in2;
    ObjectOutputStream out2;
    boolean running;
  JTextArea gamer1 = new JTextArea();
  JTextArea gamer2 = new JTextArea();
  boolean first=true;
  int x,y;
  int xr,yr;
  Deck deck=new Deck();

  //Construct the frame
  public GameFrame(String serverIPAdd,int port) throws IOException  {
    sock1 = new Socket(serverIPAdd, port);

    OutputStream os1 = sock1.getOutputStream();
    InputStream is1 = sock1.getInputStream();
    this.in1 = new ObjectInputStream(is1);

    this.out1 = new ObjectOutputStream(os1);





    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    listener=new Thread(this);
    listener.start();
  }
  public void run() {
    running = true;
    try {
      while (running) {
        ImageIcon h=(ImageIcon)Card.cardImages.get("m1");

        Object o =  in1.readObject();
        if(o instanceof GameStart)
        {
          first=true;
          //first2=true;
          gamer1.setText("");
          brand.clear();


        }
         if(o instanceof GameOver){
           running=false;

         }
        if(o instanceof TurnMessage)
        //output.append(((MessagePacket)o).getMessage() + "\n");
        {JOptionPane.showMessageDialog(new Frame(),
                                        "It is your turn!",
                                        "It is your turn!",
                                        JOptionPane.ERROR_MESSAGE);


        }

        if(o instanceof WinMessage)
        {
          //listname.clear();
          //users.setListData(listname);
          JOptionPane.showMessageDialog(new Frame(),
                                 "You win!",
                                 "You win!",
                                 JOptionPane.ERROR_MESSAGE);

        }
         if(o instanceof StartAgain)
         {
           int a=JOptionPane.showConfirmDialog(null,"continue or not?",
                                               "continue or not?",
                                   JOptionPane.YES_NO_OPTION);
           if(a==0){

             out1.writeObject(new GameWant());
           }
           else
             out1.writeObject(new GameNotWant());
         }

        if(o instanceof LoseMessage)
        {
          //listname.addElement((String)o);
          //users.setListData(listname);
          JOptionPane.showMessageDialog(new Frame(),
                                 "You lost!",
                                 "You lost!",
                                 JOptionPane.ERROR_MESSAGE);

        }
        if(o instanceof TieMessage)
     {
       //listname.clear();
       //users.setListData(listname);
       JOptionPane.showMessageDialog(new Frame(),
                              "Tie!",
                              "Tie!",
                              JOptionPane.ERROR_MESSAGE);

     }

        if(o instanceof String) {
         // if(first==true)
          //{

            //first=false;
            String s1=(String)o;
            Card d1=deck.findCard(s1);
            brand.addp1(d1);

       }
       if(o instanceof Result)
       {
         String s=(String)(((Result)o).getResult());
         Card c=deck.findCard(s);
         brand.addp2(c);
       }

      }
    }
    catch (Exception ex) {
      System.err.println("Socket closed.");
      System.exit(1);
    }
    finally {
      listener = null;
      try {
        out1.close();

      }
      catch (IOException ex) {
        ex.printStackTrace();
      }
    }
  }


  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Frame Title");
    gamer1name.setText("      ");
    gamer2name.setText("                              ");
    jPanel2.setLayout(flowLayout2);
    jPanel1.setLayout(flowLayout1);
    jPanel3.setLayout(borderLayout4);
    Hold1.setText("Hold");
    Hold1.addActionListener(new GameFrame_Hold1_actionAdapter(this));
    Want1.setText("Want");
    Want1.addActionListener(new GameFrame_Want1_actionAdapter(this));
    jPanel5.setLayout(borderLayout2);
    //Hold2.addActionListener(new GameFrame_Hold2_actionAdapter(this));
    //Want2.addActionListener(new GameFrame_Want2_actionAdapter(this));
    gamer1.setText("      ");
    gamer2.setText("      ");
    contentPane.setMinimumSize(new Dimension(300, 200));
    contentPane.setPreferredSize(new Dimension(300, 200));
    brand.setMinimumSize(new Dimension(200, 100));
    jPanel2.add(gamer2name, null);
    jPanel2.add(gamer2, null);
    jPanel1.add(gamer1name, null);
    jPanel1.add(gamer1, null);
    jPanel3.add(jPanel4,  BorderLayout.CENTER);
    jPanel4.add(Want1, null);
    jPanel4.add(Hold1, null);
    contentPane.add(jPanel3,  BorderLayout.SOUTH);
    jPanel3.add(jPanel1, BorderLayout.NORTH);
    contentPane.add(jPanel5, BorderLayout.NORTH);
    jPanel5.add(jPanel2,  BorderLayout.SOUTH);
    jPanel5.add(jPanel6, BorderLayout.NORTH);

    contentPane.add(brand,  BorderLayout.CENTER);
  }

  //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);
    }
  }

  /*void Want2_actionPerformed(ActionEvent e) {
    try{
      out2.writeObject(new RequestCard());
      out2.flush();

    }catch(IOException e1){};

  }*/

  void Want1_actionPerformed(ActionEvent e) {
    try{
      out1.writeObject(new RequestCard());
      out1.flush();

    }catch(IOException e1){};


  }

  /*void Hold2_actionPerformed(ActionEvent e) {
    try{
          out2.writeObject(new Hold());
          out2.flush();
        }catch(IOException e1){};

  }*/

  void Hold1_actionPerformed(ActionEvent e) {
    try{
          out1.writeObject(new Hold());
          out1.flush();
        }catch(IOException e1){};


  }
}

/*class GameFrame_Want2_actionAdapter implements java.awt.event.ActionListener {
  GameFrame adaptee;

  GameFrame_Want2_actionAdapter(GameFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.Want2_actionPerformed(e);
  }
}*/

class GameFrame_Want1_actionAdapter implements java.awt.event.ActionListener {
  GameFrame adaptee;

  GameFrame_Want1_actionAdapter(GameFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.Want1_actionPerformed(e);
  }
}

/*class GameFrame_Hold2_actionAdapter implements java.awt.event.ActionListener {
  GameFrame adaptee;

  GameFrame_Hold2_actionAdapter(GameFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.Hold2_actionPerformed(e);
  }
}*/

class GameFrame_Hold1_actionAdapter implements java.awt.event.ActionListener {
  GameFrame adaptee;

  GameFrame_Hold1_actionAdapter(GameFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.Hold1_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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