Advertisement
Advertisement
| 04.27.2008 at 08:30AM PDT, ID: 23357046 |
|
[x]
Attachment Details
|
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: |
//GUI CLIENT
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
public class GUIClient extends JFrame {
private static final long serialVersionUID = -3054541431624115776L;
static MyEnhancedBoard myBoard;
SG_Board sgboard = new SG_Board();
public Container contentPane;
static LODServer server=null;
public GUIClient(LODServer s) throws UnknownHostException, IOException {
server = s;
setTitle("Labyrinth");
setSize(1000,1000);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//getContentPane().add(jsp);
setVisible(true);
//Client part:
String hostname = "localhost";
int portNumber = 4455;
final Socket clientSocket = new Socket(hostname, portNumber);
JPanel connectionTo = new JPanel();
connectionTo.setLayout(new GridLayout(2,2));
//give hostname
connectionTo.add(new JLabel("Host: "));
JTextField host = new JTextField();
connectionTo.add(host);
//give portnumber
connectionTo.add(new JLabel("Port: "));
JTextField port = new JTextField();
connectionTo.add(port);
/*
while(true) {
int val = JOptionPane.showConfirmDialog(null, connectionTo, "Connect to server", JOptionPane.OK_CANCEL_OPTION);
if(val == JOptionPane.OK_OPTION) {
//clientSocket();
InetAddress.getByName(host.getText());
Integer.parseInt(port.getText());
JOptionPane.showMessageDialog(null, "Welcome! ");
break;
}
else {
System.exit(1);
}
}*/
System.out.println("Connection establised");
// setSize(900,800); // Any size, reset it later.
contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
// 640*480:
// myBoard = new MyEnhancedBoard("Blank.jpg",0,0,8,10,64,60);
//myBoard = new MyEnhancedBoard("Images/Blank.jpg",10,5,s.mapWidth,s.mapHeight, 40,40);
myBoard = new MyEnhancedBoard("Images/Blank.jpg",20,20,s.mapWidth,s.mapHeight, 40,40);
// myBoard = new MyEnhancedBoard("Blank.jpg",20,20,s.mapWidth,s.mapHeight, 60,60);
System.out.println("");
myBoard.setNoOfTiles(10000); // Total number of tiles
// setTile(int tileId, int boardCoordX,int boardCoordY,String iconName)
/*
//According to the given NUMBER OF PLAYERS CREATE THE SAME Number OF CLIENTS:
int id=200;
for (int i=1; i<= s.clients.size(); i++)
{
//new Client();
myBoard.setTile(id++,2,2,"Images/Cool1.jpg");
}
*/
// SG_Board smallMap.add(myBoard = new MyEnhancedBoard("Blank.jpg",10,5,s.mapWidth,s.mapHeight, 40,40));
/*contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
*/
JPanel smallMap = new JPanel();
myBoard.add(smallMap, BorderLayout.WEST);
JScrollPane jsp = new JScrollPane(myBoard);
contentPane.add("Center", jsp);
// contentPane.add();
JButton goUpButton = new JButton("Up");
JButton goDownButton = new JButton("Down");
JButton goLeftButton = new JButton("Left");
JButton goRightButton = new JButton("Right");
goUpButton.addActionListener(myBoard);
goDownButton.addActionListener(myBoard);
goLeftButton.addActionListener(myBoard);
goRightButton.addActionListener(myBoard);
contentPane.add("West",goLeftButton);
contentPane.add("East",goRightButton);
contentPane.add("North",goUpButton);
contentPane.add("South", goDownButton);
setVisible(true);
// for (int i=1; i<= s.clients.size(); i++)
// {
// new Client();
myBoard.setTile(1,2,2,"Images/Cool1.jpg");
SG_Board.setCurrentTileID(1);
// new Inventory();
int idmap = 2;
for(int a=0;a<s.mapHeight;a++)
{
for(int b=0;b<s.mapWidth;b++)
{
switch(s.map[a][b])
{
/*tileId,x,y, ImageFile*/
case LODServer.EMPTY : myBoard.setTile(++idmap,b,a,"Images/floor.jpg"); break;
case LODServer.HEALTH : myBoard.setTile(++idmap,b,a,"Images/health.jpg"); break;
case LODServer.LANTERN : myBoard.setTile(++idmap,b,a,"Images/lantern.jpg"); break;
case LODServer.SWORD : myBoard.setTile(++idmap,b,a,"Images/sword.jpg"); break;
case LODServer.ARMOUR : myBoard.setTile(++idmap,b,a,"Images/armour.jpg"); break;
case LODServer.EXIT : myBoard.setTile(++idmap,b,a,"Images/exit.jpg");
SG_Board.INERT_TILE_ID = idmap;
break;
case LODServer.WALL : myBoard.setTile(++idmap,b,a,"Images/wall.jpg"); break;
case LODServer.TREASURE : myBoard.setTile(++idmap,b,a,"Images/gold.jpg"); break;
}
if(s.map[a][b] > 0)
{
myBoard.setTile(++idmap,b,a,"Images/floor.jpg"); break;
}
}
repaint();
}
// }
repaint();
// menu code:
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("File");
JMenu sendCommand = new JMenu("Command");
menuBar.add(fileMenu);
menuBar.add(sendCommand);
JMenuItem openAction = new JMenuItem("Load new map");
JMenuItem exitAction = new JMenuItem("Exit");
JMenuItem sendcmd = new JMenuItem("Send command");
sendCommand.add(sendcmd);
fileMenu.add(openAction);
fileMenu.addSeparator();
fileMenu.add(exitAction);
openAction.setActionCommand("open");
openAction.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
//openFile();
}});
exitAction.setActionCommand("exit");
exitAction.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}});
sendcmd.setActionCommand("sendcmd");
final String sentence = "";
sendcmd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String inFromUser = JOptionPane.showInputDialog("Send a command:");
DataOutputStream outToServer = null;
try {
outToServer = new DataOutputStream(clientSocket.getOutputStream());
} catch (IOException e2) {
e2.printStackTrace();
}
DataInputStream inFromServer = null;
try {
inFromServer = new DataInputStream(clientSocket.getInputStream());
} catch (IOException e2) {
e2.printStackTrace();
}
String response="";
try {
response = inFromServer.readLine();
} catch (IOException e1) {
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null, response);
if (sentence != null){
/* send the command to the server */
try {
outToServer.writeBytes(sentence + '\n');
} catch (IOException e) {
e.printStackTrace();
}
try {
outToServer.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}});
//myBoard.resize(770,575);
// myBoard.show();
}//end of constructor
public File openFile() throws FileNotFoundException {
JFileChooser fc = new JFileChooser();
int res = fc.showOpenDialog(this);
if(res == JFileChooser.CANCEL_OPTION)
return null;
File file = fc.getSelectedFile();
if(!file.exists())
return null;
server.loadMap(file.getAbsolutePath());
return file;
}
public static void main(String[] args) {
try {
// new GUIClient(new LODServer() , new ClientHandler());
new GUIClient(server);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|