Solved

Java Client Applet - JTextArea and JList not streching full way

Posted on 2010-08-16
19
539 Views
Last Modified: 2012-05-10
My JTextArea and JList is not streching all the way. I have tried setting the width and height for Jlist but I kept doing it incorrectly. ... same thing for JTextArea maybe?

tileGen
/**
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.Toolkit;
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.ImageIO;
import javax.swing.DefaultListModel;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextArea;
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;
      JLabel 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 JTextArea c = new JTextArea();
      public JTextArea stats = new JTextArea();
      public static String newline;

      public static Font TimesR = new Font("MonoSpaced", Font.BOLD, 15);
      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 GamePanel game = new GamePanel();
      int xpos, ypos;
      int rect1xco, rect1yco, rect1width, rect1height;
      boolean gameClicked;
      public DefaultListModel model = new DefaultListModel();

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

      int lastX, lastY, row, col;
      JLabel 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 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);
             **/

            JList list = new JList(model);

            model.addElement("Flail");

            list.addMouseListener(this);
            say.addKeyListener(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);
            // c.setLineWrap(true);

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

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

            try {
                  tiles = new Image[NUM_TILES];
                  for (int i = 0; i < NUM_TILES; i++) {
                        tiles[i] = ImageIO.read(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] = ImageIO.read(getClass().getResource(
                                    String.format("weapon/w%d.gif", xi)));
                  }
            } catch (Exception ex) {
                  ex.printStackTrace();
            }
            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
            game.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;

            game.requestFocusInWindow();

      }

      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.");
            }

      }

      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) {

            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                  Toolkit.getDefaultToolkit().beep();
                  myCommand = "chat";
                  os.println(me.getUsername() + "|1|" + say.getText() + "|yes|chat");
                  say.setText("");
                  say.setCaretPosition(say.getDocument().getLength());

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

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

            // DESCRIBE ITEM
            if (e.getKeyCode() == KeyEvent.VK_D) {
                  Object sup = 1;
                  String xda = sup.toString();
                  String descInv = invShow(xda);
                  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;
            }

            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);
            model.addElement(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 void showInventory() {

            for (int i = 0; i < model.getSize(); i++) {
                  System.out.println(model.getElementAt(i));
            }
      }


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

      class GamePanel extends JPanel {

            public void paintComponent(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 whole thing3

Open in new window


:)
0
Comment
Question by:UrbanTwitch
  • 11
  • 8
19 Comments
 
LVL 92

Expert Comment

by:objects
Comment Utility
you need to set the preferred size

            list.setPreferredSize(new Dimension(w, h));

The BorderLayout sizes each component to its preferred size
with any space space given to CENTER component
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Oh, I must have taken it out somewhere. Thanks.

What about the Jextarea?
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
same deal (as it is also managed by a BorderLayout)
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
So that means every time the applet width and height is changed... the jtextarea will too?
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
I am setting it to this:
c.setPreferredSize(new Dimension(520,100));
but it's not working :(
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
> So that means every time the applet width and height is changed... the jtextarea will too?

typically the applet width and height would not change (as its specified in the html)

if it did though the text area width would adjust to the width of the applet (because it is in SOUTH)
the height would stay the same
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
That is correct. Right :)

But why isn't this working? :o
c.setPreferredSize(new Dimension(520,100));

Open in new window

0
 
LVL 92

Expert Comment

by:objects
Comment Utility
> but it's not working :(

what do you expect to happen.
Only the height would be affected, SOUTH component will be stretched to fill container width
http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Ooooooh, I get it. I get it. now :) So... what do you suggest I do?
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Wait wait.. how come when ti was a Textarea it looked fine in the GUI?
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
TextArea looks the same to me (with preferred size set), probably a different default preferred size would be the difference

Not sure exactly how its not looking like you want
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Mind taking a screenshot? :)

This is how mine looks:

huzzah.png
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
I want the Textarea to fill up the gray spot at top and STAY there. :)
But I tried doing the dimension settings -- no luck.
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
that doesn't look its 100, where are you setting preferred size?
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
also if you want the text area to be taking up any available space then it should be in the CENTER (and game panel in the NORTH)
NORTH and SOUTH have fixed heights
EAST and WEST have fixed widths
CENTER taks any space left over
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Oh I get it. I moved the setPreferredSize and now does this look better? :)

Only problem now? The JTextArea does not scroll. I suppose I have to set Verticle scroll always or can it be whenever there is text? Or should I always set it for always because there will never be a chance for when they ever NOT need the scrollbar :P

Here is the new image and my init()
public void init() {

            setLayout(new BorderLayout());
            JPanel invOne = new JPanel(); // inventory 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);
             **/

            JList list = new JList(model);

            model.addElement("Flail");

            list.addMouseListener(this);
            say.addKeyListener(this);

            list.setVisible(true);

            list.setFocusable(false);
            list.setPreferredSize(new Dimension(100,480));



            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);
            c.setPreferredSize(new Dimension(520,100));
            // c.setLineWrap(true);

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

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

            try {
                  tiles = new Image[NUM_TILES];
                  for (int i = 0; i < NUM_TILES; i++) {
                        tiles[i] = ImageIO.read(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] = ImageIO.read(getClass().getResource(
                                    String.format("weapon/w%d.gif", xi)));
                  }
            } catch (Exception ex) {
                  ex.printStackTrace();
            }

            // demo
            // player = getImage(getClass().getResource("me.gif")); // our player
            game.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;

            game.requestFocusInWindow();

      }

Open in new window

huhhzah.png
0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Don't I need a JScrollPane to be able to modify the JTextArea?
0
 
LVL 92

Accepted Solution

by:
objects earned 500 total points
Comment Utility
yes add a scroll pane (and set its preferred size instead of the text area)

            JScrollPane scrolledChat = new JScrollPane(c);
            scrolledChat.setPreferredSize(new Dimension(520,100));
            main.add(scrolledChat, BorderLayout.SOUTH); // chat/textarea screen

0
 
LVL 5

Author Comment

by:UrbanTwitch
Comment Utility
Woohoo! got it!

Now I got 2 new problems... :\
i'll open a new q for the first one.
woop.png
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
This video teaches viewers about errors in exception handling.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now