📄 gameframe.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 + -