@Override
	public void paint(Graphics g){
		super.paint(g);
		
		
		Iterator<Path> pathIterator = city_graph.getPathIterator();
	
		while(pathIterator.hasNext()){
			Path tmpPathRef = pathIterator.next();
			g.drawLine(tmpPathRef.getFirstCity().getXLocation(),
					   tmpPathRef.getFirstCity().getYLocation(), 
					   tmpPathRef.getSecondCity().getXLocation(),
					   tmpPathRef.getSecondCity().getYLocation());
		}
		
		
		/* JBUTTON */
		for(City c : city_graph){
			
			JButton jbutton;
			
			// math
			int cityMidX = c.getXLocation();
			int cityMidY = c.getYLocation();
			int squareHalf = (citySquareSize/2);
			int cityX = cityMidX - squareHalf;
			int cityY = cityMidY - squareHalf;
			Owner owner = c.getOwner();
			
			
			// set Button
			jbutton = new JButton();
			jbutton.setBounds(cityX, cityY, citySquareSize, citySquareSize);
			jbutton.setName(c.getID() + "");
			jbutton.setBackground(getCityColor(owner));
			
			// buttons wont get painted
			jbutton.setContentAreaFilled(false);
			
		
			// draws the text and the rect
			String drawString = Integer.toString(c.getID());
			
			if(owner == Owner.Cathargo){
				drawString += " C";
			}else if(owner == Owner.Rom){
				drawString += " R";
			}
			
			g.setColor(getCityColor(owner));
			g.fillRect(cityX, cityY, citySquareSize, citySquareSize);
			
			
			g.setColor(new Color(0,0,0));
			g.drawString(drawString, cityMidX-(3*drawString.length()), cityMidY+5);
			
			
			// adds button
			buttonMap.put(c.getID(), jbutton);
			
			add(buttonMap.get(c.getID()));
		}
		
	}