public void paintComponent(Graphics g) {
		if (started) {
			int width = getWidth();
			double maxY = 0.0;

			Graphics2D g2 = (Graphics2D) g;
			g2.setRenderingHints(hints);

			g2.setColor(new Color(255, 255, 255, (int) (alphaLevel * shield)));
			g2.fillRect(0, 0, getWidth(), getHeight());

			for (int i = 0; i < ticker.length; i++) {
				int channel = 30 + (i + 1) * 150 / ticker.length; // 224 - 224 /
																	// (i + 1);
				g2.setColor(new Color(channel, channel, channel, alphaLevel));
				g2.fill(ticker[i]);

				Rectangle2D bounds = ticker[i].getBounds2D();
				if (bounds.getMaxY() > maxY)
					maxY = bounds.getMaxY();
			}

			if (text != null && text.length() > 0) {
				FontRenderContext context = g2.getFontRenderContext();
				TextLayout layout = new TextLayout(text, getFont(), context);
				Rectangle2D bounds = layout.getBounds();
				g2.setColor(getForeground());
				layout.draw(g2, (float) (width - bounds.getWidth()) / 2,
						(float) (maxY + layout.getLeading() + 2 * layout
								.getAscent()));
			}
		}
	}