public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D) g;
		for (int id = 0; id < shapes.size(); id++)
		{
			GradientPaint p = null;
			if (select + 1 == id)
				p = new GradientPaint(300, 0, new Color(0xff, 0x5f, 0), 600, 0, new Color(0, 0x5f, 0xff));
			else
				p = new GradientPaint(200, 0, Color.LIGHT_GRAY, 700, 0, Color.DARK_GRAY);
			g2.setPaint(p);
			g2.fill(shapes.get(id));
			if (id > 0)
			{
				g2.setColor(Color.BLACK);
				g2.draw(shapes.get(id));
			}
		}
		Font font = new Font("Serif", Font.BOLD, 30);
		g2.setFont(font);
		FontRenderContext frc = g2.getFontRenderContext();

		GlyphVector gv = font.createGlyphVector(frc, s[0]);
		Shape glyph = gv.getOutline(350, 130);
		g2.draw(glyph);
		String[] str = { "<< " + world.getVolumeInPerCent() + " >>", "no effects" };
		for (int i = 0; i < 2; i++)
		{
			gv = font.createGlyphVector(frc, s[i + 1]);
			GlyphVector gv2 = font.createGlyphVector(frc, str[i]);
			glyph = gv.getOutline(250, 230 + i * 70);
			FontMetrics fm = getFontMetrics(getFont());
			int width = fm.stringWidth(str[i]);
			Shape glyph2 = gv2.getOutline(590 - width, 230 + i * 70);
			g2.draw(glyph);
			g2.draw(glyph2);
		}

		gv = font.createGlyphVector(frc, s[3]);
		glyph = gv.getOutline(400, 370);
		g2.draw(glyph);

		g2.setStroke(new BasicStroke(3));
		g2.drawLine(230, 281, 670, 281);
		g2.drawLine(230, 292, 670, 292);
		g2.drawLine(230, 303, 670, 303);
	}