@Override
	public void paintComponent(Graphics g2) {
		Graphics2D g = (Graphics2D) g2;
		Dimension originalSize = super.getSize();

		Color above = new Color(66, 122, 241);
		Color under = new Color(29, 82, 194);

		if (isPressed) {
			GradientPaint gradPaint = new GradientPaint(0, 0, above, 0, originalSize.height - 3, under);
			g.setPaint(gradPaint);
		} else {
			GradientPaint gradPaint = new GradientPaint(0, 0, under, 0, originalSize.height - 3, above);
			g.setPaint(gradPaint);
		}
		g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		g.fillRoundRect(1, 1, originalSize.width - 3, originalSize.height - 3, 7, 7);

		g.setColor(Color.black);
		g.drawRoundRect(0, 0, originalSize.width - 1, originalSize.height - 1, 7, 7);

		g.setColor(new Color(110, 152, 242));
		g.drawRoundRect(1, 1, originalSize.width - 3, originalSize.height - 3, 7, 7);

		if (!isEnabled()) {
			g.setColor(new Color(0, 0, 0, 100));
			g.fillRoundRect(1, 1, originalSize.width - 2, originalSize.height - 2, 7, 7);
		}

		super.paintComponent(g);
		g.translate(0, 2);
	}