public void paintComponent(Graphics g) {
		super.paintComponent(g);
		int width = getWidth();
		int height = getHeight();
		g.setColor(Color.white);
		g.drawRect(0, 0, width, height);

		ArrayList<Integer> areas = getAreas(BackgroundColor.RED);
		g.setColor(m_red);
		for (int i = 0; i < areas.size(); i += 2) {
			int start = areas.get(i) * height / 59;
			int end = areas.get(i + 1) * height / 59;
			int areaHeight = end - start;
			for (int j = 0; j < width + height; j += 3)
				g.drawLine(j, start, j - areaHeight, end);
		}

		areas = getAreas(BackgroundColor.GRAY);
		g.setColor(m_gray);
		for (int j = 0; j < areas.size(); j += 2) {
			int start = areas.get(j) * height / 59;
			int end = areas.get(j + 1) * height / 59;
			int areaHeight = end - start;
			for (int i = -height; i < width; i += 3)
				g.drawLine(i, start, i + areaHeight, end);
		}

		for (Color c : m_colors.keySet()) {
			areas = getAreas(c);
			for (int j = 0; j < areas.size(); j += 2) {
				int start = areas.get(j) * height / 59;
				int end = areas.get(j + 1) * height / 59;
				g.setColor(c);
				g.fillRect(0, start, width, end);
			}
		}

		//		areas = getAreas(BackgroundColor.BLUE);
		//		g.setColor(m_blue);
		//		for (int j = 0; j < areas.size(); j += 2)
		//			for (int i = 0; i < width; i += 2)
		//				g.drawLine(i, areas.get(j) * height / 59, i, areas.get(j + 1) * height / 59);
	}