@Override
		public synchronized void paint(Graphics g)
		{
			super.paint(g);
			if(focused)
			{
				g.setColor(Color.DARK_GRAY);
			}
			else
			{
				g.setColor(Color.LIGHT_GRAY);
			}
			g.drawRect(1, 1, getWidth() - 2, getHeight() - 2);
			
			if(cellTypes == null)
			{
				return;
			}
			byte[] col;
			for(int x = 0; x < cellTypes.length; x++ )
			{
				col = cellTypes[x];
				int left = 5 + x * 25;
				for(int y = 0; y < col.length; y++ )
				{
					int top = 5 + y * 25;
					
					BufferedImage img = imgBuffer.getcellImage(col[y]);
					g.drawImage(img, left, top, 25, 25, null);
				}
			}
			
			for(GPlayer p : players)
			{
				if(p.getJoined())
				{
					float x = p.getX();
					float y = p.getY();
					byte slot = p.getSlot();
					byte state = p.getState();
					
					BufferedImage img = imgBuffer.getHansImage(state, slot);
					
					g.drawImage(img, Math.round(5.0F + (x - 0.5F) * 25.0F), Math.round(5.0F + (y - 0.5F) * 25.0F), 25, 25, null);
				}
			}
		}