public JComponent createAbsolute_Position()
	{
		JTabbedPane tabbedPane = new JTabbedPane();

		// Pos tab
		final JPanel posPanel = createTabPanel(new MigLayout());

		posPanel.add(createButton(), "pos 0.5al 0al");
		posPanel.add(createButton(), "pos 1al 0al");
		posPanel.add(createButton(), "pos 0.5al 0.5al");
		posPanel.add(createButton(), "pos 5in 45lp");
		posPanel.add(createButton(), "pos 0.5al 0.5al");
		posPanel.add(createButton(), "pos 0.5al 1.0al");
		posPanel.add(createButton(), "pos 1al .25al");
		posPanel.add(createButton(), "pos visual.x2-pref visual.y2-pref");
		posPanel.add(createButton(), "pos 1al -1in");
		posPanel.add(createButton(), "pos 100 100");
		posPanel.add(createButton(), "pos (10+(20*3lp)) 200");
		posPanel.add(createButton("Drag Window! (pos 500-container.xpos 500-container.ypos)"),
		                            "pos 500-container.xpos 500-container.ypos");

		// Bounds tab
		JPanel boundsPanel = createTabPanel(new MigLayout());

		String constr = "pos (visual.x+visual.w*0.1) visual.y2-40 (visual.x2-visual.w*0.1) visual.y2";
		JLabel southLabel = createLabel(constr, SwingConstants.CENTER);
		southLabel.setBorder(new LineBorder(Color.LIGHT_GRAY, 1));
		southLabel.setBackground(new Color(200, 200, 255, benchRuns == 0 ? 70 : 255));
		southLabel.setOpaque(true);
		southLabel.setFont(southLabel.getFont().deriveFont(Font.BOLD));
		boundsPanel.add(southLabel, constr);

		boundsPanel.add(createButton(), "pos 0 0 container.x2 n");
		boundsPanel.add(createButton(), "pos visual.x 40 visual.x2 70");
		boundsPanel.add(createButton(), "pos visual.x 100 visual.x2 p");
		boundsPanel.add(createButton(), "pos 0.1al 0.4al n (visual.y2 - 10)");
		boundsPanel.add(createButton(), "pos 0.9al 0.4al n visual.y2-10");
		boundsPanel.add(createButton(), "pos 0.5al 0.5al, pad 3 0 -3 0");
		boundsPanel.add(createButton(), "pos n n 50% 50%");
		boundsPanel.add(createButton(), "pos 50% 50% n n");
		boundsPanel.add(createButton(), "pos 50% n n 50%");
		boundsPanel.add(createButton(), "pos n 50% 50% n");

		tabbedPane.addTab("X Y Positions", posPanel);
		tabbedPane.addTab("X1 Y1 X2 Y2 Bounds", boundsPanel);

		// Glass pane tab
		if (benchRuns == 0) {
			final JPanel glassPanel = createTabPanel(new MigLayout("align c c, ins 0"));
			final JButton butt = createButton("Press me!!");
			glassPanel.add(butt);

			butt.addActionListener(new ActionListener()		{
				public void actionPerformed(ActionEvent e)
				{
					butt.setEnabled(false);
					final JPanel bg = new JPanel(new MigLayout("align c c,fill")) {
						public void paint(Graphics g)
						{
							g.setColor(getBackground());
							g.fillRect(0, 0, getWidth(), getHeight());
							super.paint(g);
						}
					};
					bg.setOpaque(OPAQUE);
					configureActiveComponet(bg);

					final JLabel label = createLabel("You don't need a GlassPane to be cool!");
					label.setFont(label.getFont().deriveFont(30f));
					label.setForeground(new Color(255, 255, 255, 0));
					bg.add(label, "align 50% 30%");

					glassPanel.add(bg, "pos visual.x visual.y visual.x2 visual.y2", 0);
					final long startTime = System.nanoTime();
					final long endTime = startTime + 500000000L;

					glassPanel.revalidate();

					final javax.swing.Timer timer = new Timer(25, null);

					timer.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent e)
						{
							long now = System.nanoTime();
							int alpha = (int) (((now - startTime) / (double) (endTime - startTime)) * 300);
							if (alpha < 150)
								bg.setBackground(new Color(100, 100, 100, alpha));

							if (alpha > 150 && alpha < 405) {
								label.setForeground(new Color(255, 255, 255, (alpha - 150)));
								bg.repaint();
							}
							if (alpha > 405)
								timer.stop();
						}
					});
					timer.start();
				}
			});
			tabbedPane.addTab("GlassPane Substitute", glassPanel);
			addComponentListener(new ComponentAdapter() {
				public void componentMoved(ComponentEvent e) {
					if (posPanel.isDisplayable()) {
						posPanel.revalidate();
					} else {
						removeComponentListener(this);
					}
				}
			});
		}

		// Disregard. Just forgetting the source code text close to the source code.
		setSource("JTabbedPane tabbedPane = new JTabbedPane();\n" +
		          "\n" +
		          "// Pos tab\n" +
		          "final JPanel posPanel = createTabPanel(new MigLayout());\n" +
		          "\n" +
		          "posPanel.add(createButton(), \"pos 0.5al 0al\");\n" +
		          "posPanel.add(createButton(), \"pos 1al 0al\");\n" +
		          "posPanel.add(createButton(), \"pos 0.5al 0.5al\");\n" +
		          "posPanel.add(createButton(), \"pos 5in 45lp\");\n" +
		          "posPanel.add(createButton(), \"pos 0.5al 0.5al\");\n" +
		          "posPanel.add(createButton(), \"pos 0.5al 1.0al\");\n" +
		          "posPanel.add(createButton(), \"pos 1al .25al\");\n" +
		          "posPanel.add(createButton(), \"pos visual.x2-pref visual.y2-pref\");\n" +
		          "posPanel.add(createButton(), \"pos 1al -1in\");\n" +
		          "posPanel.add(createButton(), \"pos 100 100\");\n" +
		          "posPanel.add(createButton(), \"pos (10+(20*3lp)) 200\");\n" +
		          "posPanel.add(createButton(\"Drag Window! (pos 500-container.xpos 500-container.ypos)\"),\n" +
		          "                            \"pos 500-container.xpos 500-container.ypos\");\n" +
		          "\n" +
		          "// Bounds tab\n" +
		          "JPanel boundsPanel = createTabPanel(new MigLayout());\n" +
		          "\n" +
		          "String constr = \"pos (visual.x+visual.w*0.1) visual.y2-40 (visual.x2-visual.w*0.1) visual.y2\";\n" +
		          "JLabel southLabel = createLabel(constr, SwingConstants.CENTER);\n" +
		          "southLabel.setBorder(new LineBorder(Color.LIGHT_GRAY, 1));\n" +
		          "southLabel.setBackground(new Color(200, 200, 255, 70));\n" +
		          "southLabel.setOpaque(true);\n" +
		          "southLabel.setFont(southLabel.getFont().deriveFont(Font.BOLD));\n" +
		          "boundsPanel.add(southLabel, constr);\n" +
		          "\n" +
		          "boundsPanel.add(createButton(), \"pos 0 0 container.x2 n\");\n" +
		          "boundsPanel.add(createButton(), \"pos visual.x 40 visual.x2 70\");\n" +
		          "boundsPanel.add(createButton(), \"pos visual.x 100 visual.x2 p\");\n" +
		          "boundsPanel.add(createButton(), \"pos 0.1al 0.4al n visual.y2-10\");\n" +
		          "boundsPanel.add(createButton(), \"pos 0.9al 0.4al n visual.y2-10\");\n" +
		          "boundsPanel.add(createButton(), \"pos 0.5al 0.5al, pad 3 0 -3 0\");\n" +
		          "boundsPanel.add(createButton(), \"pos n n 50% 50%\");\n" +
		          "boundsPanel.add(createButton(), \"pos 50% 50% n n\");\n" +
		          "boundsPanel.add(createButton(), \"pos 50% n n 50%\");\n" +
		          "boundsPanel.add(createButton(), \"pos n 50% 50% n\");\n" +
		          "\n" +
		          "// Glass pane tab\n" +
		          "final JPanel glassPanel = createTabPanel(new MigLayout(\"align c c, ins 0\"));\n" +
		          "final JButton butt = createButton(\"Press me!!\");\n" +
		          "glassPanel.add(butt);\n" +
		          "\n" +
		          "butt.addActionListener(new ActionListener()\t\t{\n" +
		          "\tpublic void actionPerformed(ActionEvent e)\n" +
		          "\t{\n" +
		          "\t\tbutt.setEnabled(false);\n" +
		          "\t\tfinal JPanel bg = new JPanel(new MigLayout(\"align c c,fill\")) {\n" +
		          "\t\t\tpublic void paint(Graphics g)\n" +
		          "\t\t\t{\n" +
		          "\t\t\t\tg.setColor(getBackground());\n" +
		          "\t\t\t\tg.fillRect(0, 0, getWidth(), getHeight());\n" +
		          "\t\t\t\tsuper.paint(g);\n" +
		          "\t\t\t}\n" +
		          "\t\t};\n" +
		          "\t\tbg.setOpaque(OPAQUE);\n" +
		          "\t\tconfigureActiveComponet(bg);\n" +
		          "\n" +
		          "\t\tfinal JLabel label = createLabel(\"You don't need a GlassPane to be cool!\");\n" +
		          "\t\tlabel.setFont(label.getFont().deriveFont(30f));\n" +
		          "\t\tlabel.setForeground(new Color(255, 255, 255, 0));\n" +
		          "\t\tbg.add(label, \"align 50% 30%\");\n" +
		          "\n" +
		          "\t\tglassPanel.add(bg, \"pos visual.x visual.y visual.x2 visual.y2\", 0);\n" +
		          "\t\tfinal long startTime = System.nanoTime();\n" +
		          "\t\tfinal long endTime = startTime + 500000000L;\n" +
		          "\n" +
		          "\t\tglassPanel.revalidate();\n" +
		          "\n" +
		          "\t\tfinal javax.swing.Timer timer = new Timer(25, null);\n" +
		          "\n" +
		          "\t\ttimer.addActionListener(new ActionListener() {\n" +
		          "\t\t\tpublic void actionPerformed(ActionEvent e)\n" +
		          "\t\t\t{\n" +
		          "\t\t\t\tlong now = System.nanoTime();\n" +
		          "\t\t\t\tint alpha = (int) (((now - startTime) / (double) (endTime - startTime)) * 300);\n" +
		          "\t\t\t\tif (alpha < 150)\n" +
		          "\t\t\t\t\tbg.setBackground(new Color(100, 100, 100, alpha));\n" +
		          "\n" +
		          "\t\t\t\tif (alpha > 150 && alpha < 405) {\n" +
		          "\t\t\t\t\tlabel.setForeground(new Color(255, 255, 255, (alpha - 150)));\n" +
		          "\t\t\t\t\tbg.repaint();\n" +
		          "\t\t\t\t}\n" +
		          "\t\t\t\tif (alpha > 405)\n" +
		          "\t\t\t\t\ttimer.stop();\n" +
		          "\t\t\t}\n" +
		          "\t\t});\n" +
		          "\t\ttimer.start();\n" +
		          "\t}\n" +
		          "});\n" +
		          "\n" +
		          "tabbedPane.addTab(\"X Y Positions\", posPanel);\n" +
		          "tabbedPane.addTab(\"X1 Y1 X2 Y2 Bounds\", boundsPanel);\n" +
		          "tabbedPane.addTab(\"GlassPane Substitute\", glassPanel);\n" +
		          "\n" +
		          "addComponentListener(new ComponentAdapter() {\n" +
		          "\tpublic void componentMoved(ComponentEvent e) {\n" +
		          "\t\tif (posPanel.isDisplayable()) {\n" +
		          "\t\t\tposPanel.revalidate();\n" +
		          "\t\t} else {\n" +
		          "\t\t\tremoveComponentListener(this);\n" +
		          "\t\t}\n" +
		          "\t}\n" +
		          "});");

		return tabbedPane;
	}