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);
		Font font2 = new Font("Serif", Font.BOLD, 20);
		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 = getKeyStrings();
		for (int i = 0; i < 4; i++)
		{
			gv = font.createGlyphVector(frc, s[i + 2]);
			GlyphVector gv2 = font.createGlyphVector(frc, str[i]);
			glyph = gv.getOutline(250, 230 + i * 70);
			Shape glyph2 = gv2.getOutline(500, 230 + i * 70);
			g2.draw(glyph);
			g2.draw(glyph2);
			g2.setFont(font2);
			if (select == i)
			{
				if (frame.isKeybinding())
					gv = font2.createGlyphVector(frc, "please select a key");
				else
					gv = font2.createGlyphVector(frc, "to change press " + getKeyString(frame.getEnterKey()));
				glyph = gv.getOutline(230, 257 + i * 70);
				g2.draw(glyph);
			}
			if (select == 2)
			{
				gv = font2.createGlyphVector(frc, s[1]);
				glyph = gv.getOutline(555, 397);
				g2.draw(glyph);
			}
			if (select == 3)
			{
				gv = font2.createGlyphVector(frc, s[7]);
				glyph = gv.getOutline(585, 467);
				g2.draw(glyph);
			}
			g2.setFont(font);
		}
		gv = font.createGlyphVector(frc, s[6]);
		glyph = gv.getOutline(400, 510);
		g2.draw(glyph);
	}