@Override
		public void paint(Graphics g) {
			
			super.paint(g);

			Iterator<Pfad> pfadIterator = laenderGraph.getPathIterator();

			g.drawImage(bild, 0, 0, null);

			while (pfadIterator.hasNext()) {
				Pfad tmpPathRef = pfadIterator.next();
				Graphics2D g2 = (Graphics2D) g;
                g2.setStroke(new BasicStroke(10));
				g2.drawLine(tmpPathRef.getFirstLand().getXLocation(), tmpPathRef
						.getFirstLand().getYLocation(), tmpPathRef.getSecondLand()
						.getXLocation(), tmpPathRef.getSecondLand().getYLocation());
			}

			/* JBUTTON */
			for (Land c : laenderGraph) {

				JButton jbutton;

				// math
				int landMidX = c.getXLocation();
				int landMidY = c.getYLocation();
				int squareHalf = (citySquareSize / 2);
				int cityX = landMidX - squareHalf;
				int cityY = landMidY - squareHalf;
				Fraktion owner = c.getOwner();

				// draws the text and the rect
				String drawString = Integer.toString(c.getID());

				if (owner == Fraktion.Blau) {
					drawString += "[" + c.getAnzahlEinheiten() + "]";
				} else if (owner == Fraktion.Rot) {
					drawString += "[" + c.getAnzahlEinheiten() + "]";;
				}

				g.setColor(getCityColor(owner));
				g.fillRect(cityX, cityY, citySquareSize, citySquareSize);

				g.setColor(new Color(0, 0, 0));
				g.drawString(drawString, landMidX - (3 * drawString.length()),
						landMidY + 5);

				// adds button
				jbutton = buttonFactory(cityX, cityY, c.getID());
				buttonMap.put(c.getID(), jbutton);

				add(jbutton);

			}

		}