Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 334
  • Last Modified:

Java Client Applet - Clicking inside of JPanel

OK so I m getting a NullPointerException on line 277 -- weird...

What I am trying to do is if the mouse is inside the coordinates and is CLICKED to focus back on the game jpanel...

line 277: game.requestFocusInWindow(); // request focus in game JPanel

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
        at tileGen.mouseClicked(tileGen.java:277)
        at java.awt.Component.processMouseEvent(Component.java:6270)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Open in new window


Here is tileGen in full:
/**
Mystik Client
Programer: Dan J.
Many thanks to objects & CEHJ
Started May 23, 2010
(c) 2010
**/

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.List;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Random;
import javax.imageio.*;

import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class tileGen extends JApplet implements KeyListener, MouseListener,
		ActionListener, Runnable {

	Image[] tiles;
	Image[] weapon;
	Image[] userImg;
	String[] user;
	int x, y, px, py, tx, ty; // x tile - y tile // player x - player y // tile
	// x - tile y
	boolean left, right, down, up, canMove, respawn;
	boolean drawFlail, drawBattleaxe;
	public static int[][] board;
	final int NUM_TILES = 200;
	final int NUM_WEAPS = 2;
	boolean[] weaponPicked;
	Label lx, ly; // to see where we are!
	int r1, r2, u1, u2, l1, l2, d1, d2, spawnX, spawnY;
	int rightSide = 480;
	int downSide = 320;
	int mapX = 15;
	int mapY = 10;
	String txtLastFX, txtLastFY;
	boolean boolRC, boolLC, boolUC, boolDC;
	int leftMap, upMap, rightMap, downMap, currentMap, map;
	public static TextArea c = new TextArea();
	public static TextArea stats = new TextArea();
	public static String newline;
	public static java.awt.List list;

	public static Font TimesR = new Font("MonoSpaced", Font.BOLD, 15);
	public static ArrayList<String> arr;
	public static tileGen anItem;
	public static boolean firstpush = false;
	String name, desc, typeOf, attackAdd, defenseAdd, canSell, canEat,
			earnedCoins, canEquip;
	public static int blkStr;
	public static Random roll = new Random();
	//public static String me.getUsername();
	public static int[] userPX;
	public static int[] userPY;
	private Map<String, Player> players = new HashMap<String, Player>();
	public static String[] tokens;
	public static String[] temp;
	public static boolean isResp = false;
	public static String myCommand = "move";
	private Player me;
	public static boolean chatOne = false;
	public int red = 0;
	public static JTextField say = new JTextField();
	public static JPanel game;
	int xpos, ypos;
	 int rect1xco,rect1yco,rect1width,rect1height;
	 boolean gameClicked;

	// Network schtuff
	public static PrintStream os = null;
	static Socket clientSocket = null;
	static BufferedReader in;
	static boolean closed;

	int lastX, lastY, row, col;
	Label lbl1, lbl2, p1, p2, lblRC;

	int attack, defense, gold, level, exp;

	public static void showInventory(ArrayList<String> theList) {
		for (int i = 0; i < theList.size(); i++) {
			System.out.println(theList.get(i));
		}
	}

	public void init() {

	            setLayout(new BorderLayout());
	            JPanel invOne = new JPanel(); // inventory panel
	            JPanel game = new JPanel(); // game panel
	            //JPanel banner = new JPanel();

	                JPanel main = new JPanel(new BorderLayout());
	            main.add(game, BorderLayout.CENTER); // game screen;
	            main.add(c, BorderLayout.SOUTH); // chat/textarea screen
	            add(main, BorderLayout.CENTER);
            add(say, BorderLayout.SOUTH);

		/**
		 * arr.add("Hatchet"); arr.add("Sword"); arr.add("Shield"); arr.add(gold
		 * + " Gold"); System.out.println("You have " + arr.size() +
		 * " items in your inventory."); showInventory(arr);
		 **/

		anItem = new tileGen();
		arr = new ArrayList<String>();

		list = new List();
		for (String item : arr)
			list.add(item);

		list.addMouseListener(this);

		list.setVisible(true);

		list.setFocusable(false);

		main.add(list, BorderLayout.EAST); // inventory screen

		game.setOpaque(false);

		game.setBounds(0, 0, 416, 288);

		c.setBackground(Color.white);
		c.setForeground(Color.black);
		c.setFont(TimesR);
		c.setEditable(true);

		board = loadBoard(1);
		currentMap = 1;
		spawnY = 6;
		spawnX = 10;
		c.append("Welcome to the game, " + getParameter("name") + ".");

		this.setFocusable(true);
		addMouseListener(this);

		tiles = new Image[NUM_TILES];
		for (int i = 0; i < NUM_TILES; i++) {
			tiles[i] = getImage(getClass().getResource(
					String.format("line_tile/t%d.png", i)));
		}

		weapon = new Image[NUM_WEAPS];
		for (int xi = 0; xi < NUM_WEAPS; xi++) {
			weapon[xi] = getImage(getClass().getResource(
					String.format("weapon/w%d.gif", xi)));
		}

		userPX = new int[10];
		for (int i = 0; i < 10; i++) {
			userPX[i] = -100;
		}

		userPY = new int[10];
		for (int i = 0; i < 10; i++) {
			userPY[i] = -100;
		}

		// demo
		// player = getImage(getClass().getResource("me.gif")); // our player
		addKeyListener(this);
		canMove = true;

		String txtY = Integer.toString(spawnY);
		String txtX = Integer.toString(spawnX);

		py = spawnY * 32;
		px = spawnX * 32;

		lastY = spawnY;
		lastX = spawnX;

		drawFlail = true;
		drawBattleaxe = true;
		this.setFocusable(true);
		game.setFocusable(true);
		c.setFocusable(false);

		invOne.setVisible(true);

		// blkStr = board[5][5];
		// System.out.println("Teh black one: " +blkStr);
		// board[5][5] = 26;

	}

	public void start() {
		new Thread(this).start();

	}


		            public void playerLogin() throws IOException {

		                   Random roll = new Random();
		                   int newNo = roll.nextInt(200);
		                   // me.getUsername() = "Guest #" + roll.nextInt(110);
		                   //String me.getUsername() = getParameter("name");



		                   me = new Player();
		                   me.setUsername(getParameter("name"));
		                   me.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
		                   me.setX(256);
		                   me.setY(256);
		                   me.setMap(1);
		                   me.setCommand("move");
		                   players.put(me.getUsername(), me);


		                   repaint();

		                   System.out.println(me.getUsername() + " was added. player: " + me);
		                       os.println(me.getUsername() + "|" + me.getX() + "|" + me.getY() + "|" + me.getMap() + "|" + me.getCommand());

		                   attack = 4;
		                   defense = 5;
		                   gold = 542;
		                   level = 1;
		                   exp = 53;


      }

	public void mousePressed(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	}

	// equip - use - select
public void mouseClicked(MouseEvent e) {


		xpos = me.getX();
		ypos = me.getY();

		rect1xco = 0;
		rect1yco = 0;
		rect1width = 480;
		rect1height = 320;

		if (xpos > rect1xco && xpos < rect1xco+rect1width && ypos >rect1yco && ypos < rect1yco+rect1height) {
			game.requestFocusInWindow();
			c.append("\nYou clicked on the game.");
		}


		if (e.getClickCount() == 2) {
			myCommand = "chat";
			c.append("\nDouble clicked on " + list.getSelectedItem());
			os.println(me.getUsername() + "|1|Hello, world!|yes|chat");
		}

	}


	private static final HashSet<Integer> BLOCKED_TILES = new HashSet<Integer>();
	static {

		/**
		 * BLOCKED_TILES.add(118); BLOCKED_TILES.add(67);
		 * BLOCKED_TILES.add(190); BLOCKED_TILES.add(40);
		 * BLOCKED_TILES.add(135); BLOCKED_TILES.add(520);
		 * BLOCKED_TILES.add(25); BLOCKED_TILES.add(91); BLOCKED_TILES.add(394);
		 * BLOCKED_TILES.add(1); BLOCKED_TILES.add(121);
		 **/

		BLOCKED_TILES.add(1);
		BLOCKED_TILES.add(6);
		BLOCKED_TILES.add(7);
		// add more tiles here
	}

	public void actionPerformed(ActionEvent actionevent) {
		game.requestFocusInWindow();
	}

	public Player getPlayer(String username) {
		return players.get(username);
	}

	public void run() {

		System.out.println("run() still going..");


		Socket s = null;

		try {

			// s = new Socket(getParameter("host"),
			// Integer.valueOf(getParameter("port"));
			// s = new Socket(getParameter("host"),
			// Integer.valueOf(getParameter("port")));
			s = new Socket("localhost", 25566);
			in = new BufferedReader(new InputStreamReader(s.getInputStream()));

			os = new PrintStream(s.getOutputStream());

			playerLogin();

			int buf = -1;
			String responseLine;



			// rawr
			while ((responseLine = in.readLine()) != null) {
				isResp = true;

				chatOne = true;
				//c.append("\nxxx\n");
				// System.out.println("responseLine (|): " + responseLine);

				String str = responseLine;

				String delimiter = "\\|";

				String[] temp = str.split(delimiter);

				//c.append("\noutput: " + str);

				// pid
				Player player = players.get(temp[0]);

if ("chat".equalsIgnoreCase(temp[4])) {
c.append("\n"+temp[0] + " says: " + temp[2]);

//sendMsg(temp[0], temp[2], me.getUsername());

}


				if (player == null) {

				player = new Player();
				player.setUsername(temp[0]);
				player.setX(Integer.parseInt(temp[1]));
				player.setY(Integer.parseInt(temp[2]));
				player.setCommand(temp[4]);
				player.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
				player.setMap(1);
				players.put(temp[0], player);
				}
if ("move".equalsIgnoreCase(temp[4])) {
	c.append("\n"+temp[2] + " and temp 4: " + temp[4]);
				player.setX(Integer.parseInt(temp[1]));
				player.setY(Integer.parseInt(temp[2]));
				player.setMap(Integer.parseInt(temp[3]));
			}
				player.setCommand(temp[4]);
				player.setUsername(temp[0]);
				System.out.println("X set: " + player.getX() + " | Y set: "
						+ player.getY() + " | CurrMap set: " + player.getMap()
						+ " | Username set: " + player.getUsername() + " | Command set: " + temp[4]);



				repaint();





			}
			repaint();

		} catch (Exception rwe) {
			// System.exit(0);
			System.out.println("Server went down -- crap!");
			rwe.printStackTrace();
		} finally {
			try {
				s.close();
			} catch (IOException ere) {
				ere.printStackTrace();
			}
		}

	}

	public void sendMsg(String e, String msg, String getUser) {

//c.append("\n Temp0: " + temp[0] + "| me.getUsername: "+me.getUsername());

String whosay;
if (!temp[0].equals(me.getUsername())) {

	whosay = e;
}else{
	whosay = me.getUsername();
}
c.append("\n"+ e + " says: " + msg);
	}

	public void keyPressed(KeyEvent e) {


		// getPlayers();

		repaint();

		myCommand = "move";
		System.out.println("PRESSED" + myCommand);

		if (isInBound(lastX, lastY) == true) {
			System.out.println("\nYOU WENT OFF THE GRID.\n");
		}

		right = true;
		left = true;
		up = true;
		down = true;

		String choice = list.getSelectedItem();

		// c.append("\nInventory selection: " + choice);

		// DESCRIBE ITEM
		if (e.getKeyCode() == KeyEvent.VK_D) {
			String descInv = invShow(list.getSelectedItem());
			c.append("\n" + descInv);
		}

		if (e.getKeyCode() == KeyEvent.VK_S) {
			int numToReplace = 0;
			int replacement = 7;
			// loop through each nested array
			for (int i = 0; i < board.length; i++) {
				// loop through each element of the nested array
				for (int j = 0; j < board[i].length; j++) {
					if (board[i][j] == numToReplace) {
						board[i][j] = replacement;
					}
				}
			}
		}

		// USE
		if (e.getKeyCode() == KeyEvent.VK_U) {

			// MAP ONE
			if (currentMap == 1) {

				// OPEN BLOCKED TILES
				if (spawnX == 10 && spawnY == 7) {
					board[8][10] = 167;
					c.append("\nYou opened a door.");
				}

			}

			// MAP ONE

		}

		// PICK UP
		if (e.getKeyCode() == KeyEvent.VK_G) {

			// MAP ONE
			if (currentMap == 1) {

				if (spawnX == 4 && spawnY == 4) {
					int xav = board[4][4];
					board[4][4] = 7;
					drawFlail = false;
					try {
						anItem.addInv(1);
					} catch (Exception ere) {
						ere.printStackTrace();
					}

				}

			}

			// MAP ONE
			if (currentMap == 3) {

				if (spawnX == 3 && spawnY == 3) {
					int xav = board[3][3];
					board[3][3] = 1;
					drawBattleaxe = false;
					try {
						anItem.addInv(2);
					} catch (Exception ere) {
						ere.printStackTrace();
					}

				}

			}
			// MAP ONE

		}

		try {
			if (blocked(spawnX - 1, spawnY) == true && spawnX == mapX) {
				left = false;
				System.out.println("You can't go left!");
			}
			if (blocked(spawnX + 1, spawnY) == true && spawnX == 0) {
				right = false;
				System.out.println("You can't go right!");
			}
			if (blocked(spawnX, spawnY + 1) == true && spawnX == mapX) {
				down = false;
				System.out.println("You can't go down!");
			}
			if (blocked(spawnX, spawnY - 1) == true && spawnX == mapX) {
				up = false;
				System.out.println("You can't go up!");
			}

		} catch (ArrayIndexOutOfBoundsException xe) {
			xe.printStackTrace();
		}

		try {
			if (blocked(spawnX + 1, spawnY) == true)
				right = false;
		} catch (ArrayIndexOutOfBoundsException xe) {
			System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
		}

		try {
			if (blocked(spawnX - 1, spawnY) == true)
				left = false;
		} catch (ArrayIndexOutOfBoundsException xe) {
			System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
		}

		try {
			if (blocked(spawnX, spawnY + 1) == true)
				down = false;
		} catch (ArrayIndexOutOfBoundsException xe) {
			System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
		}

		try {
			if (blocked(spawnX, spawnY - 1) == true)
				up = false;
		} catch (ArrayIndexOutOfBoundsException xe) {
			System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
		}

		if (blocked(12, 7) == true && spawnX == mapX && spawnY - 1 == 1 - mapX) {
			up = false;
		}

		int r1 = lastX + 1;
		if (lastX > 0) {
			r1 = lastX + 1;
		} else {
			r1 = 0;
		}
		int r2 = lastY;

		int u1 = lastX;
		int u2;
		if (lastY > 0) {
			u2 = lastY - 1;
		} else {
			u2 = 0;
		}

		int l1;
		if (spawnX > 0) {
			l1 = lastX - 1;
		} else {
			l1 = 0;
		}
		int l2 = spawnY;

		int d1 = lastX;
		int d2;
		if (lastY > 0) {
			d2 = lastY + 1;
		} else {
			d2 = 0;
		}

		try {
			if (blocked(r1, r2) == true)
				right = false; // we cannot go right
			if (blocked(u1, u2) == true)
				up = false; // we cannot go up
			if (blocked(l1, l2) == true)
				left = false; // we cannot go left
			if (blocked(d1, d2) == true)
				down = false; // we cannot go down

		} catch (ArrayIndexOutOfBoundsException xe) {
			System.out
					.println("\n\nFuture block Array Index Out of Bounds Exception!!\n\n");
		}

		leftMap = 0;
		upMap = 0;
		rightMap = 0;
		downMap = 0;

		boolRC = false;
		boolLC = false;
		boolUC = false;
		boolDC = false;

		// Border Checks
		if (spawnX == mapX && e.getKeyCode() == KeyEvent.VK_RIGHT) {
			boolRC = true;
		}

		if (spawnX == 0 && e.getKeyCode() == KeyEvent.VK_LEFT) {
			boolLC = true;
		}

		if (spawnY == 0 && e.getKeyCode() == KeyEvent.VK_UP) {
			boolUC = true;
		}

		if (spawnY == mapY && e.getKeyCode() == KeyEvent.VK_DOWN) {
			boolDC = true;
		}

		/** MAP SWITCHING **/
		/** MAP SWITCHING **/
		/** MAP SWITCHING **/

		if (currentMap == 1) {
			leftMap = 3;
			upMap = 2;
			rightMap = 4;
			downMap = 5;

		} else if (currentMap == 4) {
			leftMap = 1;
		} else if (currentMap == 2) {

			downMap = 1;
		} else if (currentMap == 3) {

			downMap = 1;
		}
		if (currentMap == 5) {

			upMap = 1;
		}

		if (leftMap == 0 && spawnX == 0)
			left = false;
		if (rightMap == 0 && spawnX == mapX)
			right = false;
		if (downMap == 0 && spawnY == mapY)
			down = false;
		if (upMap == 0 && spawnY == 0)
			up = false;

		if (e.getKeyCode() == KeyEvent.VK_UP && up == true) {
			spawnY = spawnY - 1;
			System.out.println("You went up.");
		}
		if (e.getKeyCode() == KeyEvent.VK_DOWN && down == true) {
			spawnY = spawnY + 1;
			System.out.println("You went down.");
		}
		if (e.getKeyCode() == KeyEvent.VK_RIGHT && right == true) {
			spawnX = spawnX + 1;
			System.out.println("You went right.");
		}
		if (e.getKeyCode() == KeyEvent.VK_LEFT && left == true) {
			spawnX = spawnX - 1;
			System.out.println("You went left.");
		}

		// RIGHT TO LEFT
		// LEFT TO RIGHT DONE
		if (boolRC == true && right == true) {
			spawnX = 0;
			lastX = spawnX;
			spawnY = spawnY;
			board = loadBoard(rightMap);
			px = 0;
			py = py;
			currentMap = rightMap;
		}

		if (boolLC == true && left == true) {
			spawnX = mapX;
			lastX = spawnX;
			spawnY = spawnY;
			board = loadBoard(leftMap);
			px = rightSide;
			py = py;
			currentMap = leftMap;
		}

		if (boolUC == true && up == true) {
			spawnY = mapY;
			lastY = spawnY;
			spawnX = spawnX;
			board = loadBoard(upMap);
			px = px;
			py = downSide;
			currentMap = upMap;
		}

		if (boolDC == true && down == true) {
			spawnY = 0;
			lastY = spawnY;
			spawnX = spawnX;
			board = loadBoard(downMap);
			px = px;
			py = 0;
			currentMap = downMap;
		}

		/** MAP SWITCHING **/
		/** MAP SWITCHING **/
		/** MAP SWITCHING **/

		String currX = Integer.toString(spawnX);
		String currY = Integer.toString(spawnY);
		System.out.println("Current/Last Y: " + currY + "/" + lastY);
		System.out.println("Current/Last X: " + currX + "/" + lastX + " - "
				+ board[spawnY][spawnX] + "\n\n");

		if (boolLC == false) {
			if (left == true) {
				if (e.getKeyCode() == KeyEvent.VK_LEFT) {
					left = true;
					px = px - 32;
					lastX = lastX - 1;
				}
			}
		} else {
			if (leftMap > 0)
				px = rightSide;
		}

		if (boolRC == false) {
			if (right == true) {
				if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
					right = true;
					px = px + 32;
					lastX = lastX + 1;
				}
			}
		} else {
			if (rightMap > 0)
				px = 0;
		}

		if (boolDC == false) {

			if (down == true) {
				if (e.getKeyCode() == KeyEvent.VK_DOWN) {
					down = true;
					py = py + 32;
					lastY = lastY + 1;

				}
			}
		} else {
			if (downMap > 0)
				py = 0;

		}

		if (boolUC == false) {
			if (up == true) {

				if (e.getKeyCode() == KeyEvent.VK_UP) {
					up = true;
					py = py - 32;
					lastY = lastY - 1;
				}
			}
		} else {
			if (upMap > 0)
				py = downSide;
		}

System.out.println("me.getUsername(): " + me.getUsername());
				 me = players.get(me.getUsername());

				me.setX(px);
me.setY(py);

if (myCommand == "move") {
		os.println(me.getUsername() + "|" + px + "|" + py + "|" + currentMap + "|move");
	}else if (myCommand == "chat"){
		os.println(me.getUsername() + "|1|Hello, world!|yes|chat");
	}

	me.setCommand(myCommand);
	System.out.println("my curernt map! : " + currentMap);


		repaint();

	}

	public void keyReleased(KeyEvent e) {

	} // ignore

	public void keyTyped(KeyEvent e) {
	} // ignore

	public void addInv(int e) {

		String iname = getItem(e)[0];

		String idesc = getItem(e)[1];
		int itypeOf = Integer.parseInt(getItem(e)[2]);
		int iattackAdd = Integer.parseInt(getItem(e)[3]);
		int idefenseAdd = Integer.parseInt(getItem(e)[4]);
		boolean icanSell = Boolean.parseBoolean(getItem(e)[5]);
		boolean icanEat = Boolean.parseBoolean(getItem(e)[6]);
		int iearnedCoins = Integer.parseInt(getItem(e)[7]);

		c.append("\nYou picked up a " + iname + ".");
		// for (String item : arr) list.add(item);
		list.add(iname);
		arr.add(iname);
	}

	public static String invShow(String e) {

		String desc = "None";

		if (e == "Flail") {
			desc = "A crushing blow to the head from this weapon can make BRAIN SLUSHIE!";
		}
		if (e == "Battleaxe") {
			desc = "Holding this weapon will make you smell like a man, man.";
		}

		return desc;

	}

	public static String[] getItem(int e) {

		String[] stats = new String[7];

		String name = "Null";
		String desc = "Nonexx";
		String typeOf = "0";
		String attackAdd = "0";
		String defenseAdd = "0";
		String canSell = "true";
		String canEat = "false";
		String earnedCoins = "0";

		if (e == 1) {

			name = "Flail";
			typeOf = "2";
			attackAdd = "2";
			earnedCoins = "5";
		}

		if (e == 2) {

			name = "Battleaxe";
			typeOf = "2";
			attackAdd = "4";
			earnedCoins = "10";
		}

		return new String[] { name, desc, typeOf, attackAdd, defenseAdd,
				canSell, canEat, earnedCoins };

	}

	public static void showInventory() {

		for (int i = 0; i < arr.size(); i++) {
			System.out.println(arr.get(i));
		}
	}

	public void paint(Graphics g) {

		for (row = 0; row < board.length; row++) {
			for (col = 0; col < board[row].length; col++) {
				int index = board[row][col];
				g.drawImage(tiles[index], 32 * col, 32 * row, this);

			}
		}

		try {
			for (Player player : players.values()) {
				System.out.println("++++++++++++++++++++++++++");
				System.out.println("current map: " + player.getMap());
				if (player.getUsername() == me.getUsername()) player.setMap(currentMap);
				if (player.getUsername() == me.getUsername()) player.setCommand(myCommand);
				if (player.getMap() == currentMap) {
					g.drawImage(player.getPlayerImage(), player.getX(), player.getY(), this);

				}
				System.out.println("Command-- " + player.getCommand() + " > " +player.getUsername() + " moved to X:" + player.getX() + " and Y: " + player.getY());

				System.out.println("++++++++++++++++++++++++++");
			}
		} catch (Exception dan) {
			System.out.println("No one is on.");
		}

		// qq
		/**
		 * for(int runx = 0;runx < 10;runx++) { g.drawImage(userImg[runx],
		 * userPX[runx], userPY[runx], this); }
		 **/

		if (drawFlail == true && currentMap == 1)
			g.drawImage(weapon[1], 32 * 4, 32 * 4, this);
		if (drawBattleaxe == true && currentMap == 3)
			g.drawImage(weapon[0], 32 * 3, 32 * 3, this);
		System.out.println(drawFlail);
	} // end paint method

	public void update(Graphics g) {
		paint(g);
	}

	public int[][] loadBoard(int map) {
		if (map == 1) {
			return new int[][] {
{ 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 7, 7, 7, 7, 7, 7
 },
{ 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6
 },
{ 7, 13, 1, 13, 1, 13, 1, 13, 13, 13, 1, 1, 13, 13, 13, 6
 },
{ 7, 13, 1, 1, 1, 13, 1, 13, 13, 13, 1, 13, 13, 13, 13, 6
 },
{ 7, 13, 13, 1, 13, 13, 1, 13, 13, 13, 1, 13, 13, 13, 13, 6
 },
{ 7, 13, 1, 1, 1, 13, 1, 1, 1, 13, 1, 1, 1, 1, 13, 6
 },
{ 7, 13, 1, 13, 13, 13, 13, 13, 1, 13, 13, 1, 13, 13, 13, 6
 },
{ 7, 13, 1, 1, 13, 13, 13, 1, 1, 13, 13, 1, 13, 13, 13, 6
 },
{ 7, 13, 13, 13, 13, 13, 13, 1, 13, 13, 13, 1, 13, 13, 13, 6
 },
{ 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6
 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
 }
};
		}else if (map == 2) {
			return new int[][] { { 145, 145, 55, 145, 145, 55, 184, 163, 55, 163, 163, 55, 145, 181, 145, 145
			 },
			{ 145, 13, 145, 145, 166, 166, 166, 163, 163, 13, 13, 13, 13, 13, 13, 145
			 },
			{ 145, 13, 13, 163, 166, 166, 166, 163, 13, 13, 13, 13, 13, 13, 13, 163
			 },
			{ 145, 13, 13, 163, 166, 166, 166, 163, 13, 145, 145, 145, 145, 145, 13, 145
			 },
			{ 145, 13, 13, 163, 166, 166, 166, 163, 13, 145, 166, 166, 166, 145, 13, 145
			 },
			{ 145, 13, 13, 163, 163, 95, 163, 145, 13, 145, 166, 166, 166, 145, 13, 145
			 },
			{ 145, 13, 13, 13, 13, 13, 13, 13, 13, 166, 166, 166, 166, 145, 13, 145
			 },
			{ 145, 145, 13, 13, 13, 13, 13, 13, 13, 163, 145, 55, 145, 145, 13, 145
			 },
			{ 145, 145, 145, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 145
			 },
			{ 145, 145, 145, 145, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 145
			 },
			{ 145, 145, 145, 145, 145, 145, 13, 13, 13, 13, 13, 145, 145, 145, 145, 145
			 }
};
}

		return board;
	}

	public boolean blocked(int tx, int ty) {
		return BLOCKED_TILES.contains(board[ty][tx]);
	}

	public boolean isInBound(int r, int c) {
		return (r >= 0) && (r < 8) && (c >= 12) && (c < 1);
	}

} // end whole thing3

Open in new window

0
UrbanTwitch
Asked:
UrbanTwitch
  • 3
  • 2
1 Solution
 
objectsCommented:
>       public static JPanel game;

should be:

      public JPanel game = new JPanel();

>                   JPanel game = new JPanel(); // game panel

and delete that line
0
 
UrbanTwitchAuthor Commented:
WORKED LIKE A CHARM! :-)

I am guessing I get that error because when I click on the game... the init() hasn't run? :P
0
 
objectsCommented:
no its because the listener access the member var, but in init you set a local var. So the game member var never gets set
0
 
UrbanTwitchAuthor Commented:
what is the difference between the member and local var?
0
 
objectsCommented:
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now