Advertisement
|
[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: |
//GUI CLIENT
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class GUIClient extends JFrame {
private static final long serialVersionUID = -3054541431624115776L;
private Socket clientSocket;
static MyEnhancedBoard myBoard;
public Container contentPane;
//static LODServer server=null;
static LODServer s;
//int port;
//int players;
//static String map;
public GUIClient(LODServer s) throws UnknownHostException, IOException {
//s= server;
// s.setup(port,players, map);
// PrintMap(s);
setTitle("Labyrinth");
setSize(1000,1000);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//getContentPane().add(jsp);
setVisible(true);
//Client part:
String hostname = "localhost";
int portNumber = 4455;
clientSocket = new Socket(hostname, portNumber);
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",20,20,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 DialogSender());
myBoard.resize(1000,1000);
myBoard.show();
}//end of constructor
public File openFile(LODServer s) 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());
s.loadMap(file.getAbsolutePath());
return file;
}
public static void main(String[] args) throws UnknownHostException, IOException {
if (GUIClient.s == null) {
new GUIClient(new LODServer());
}
else {
new GUIClient(GUIClient.s); // You would be better with an empty constructor
}
}
class DialogSender implements ActionListener {
public void actionPerformed(ActionEvent ae) {
PrintWriter outToServer = null;
try {
outToServer = new PrintWriter(new OutputStreamWriter(
clientSocket.getOutputStream()));
String sentence = JOptionPane.showInputDialog("Send a command:");
while ((sentence.trim()) != null){
/* send the sentence to the server */
outToServer.println(sentence);
}
outToServer.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
outToServer.close();
} catch (Exception e) { /* ignore */
}
}
}
}
}
|
|
[x]
The Solution Rating System
|
||
|
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
|
Loading Advertisement... |
| Open Discussion |