public void paintComponent(Graphics g) {
		Graphics2D g2d = (Graphics2D) g.create();

		int h = getHeight();
		int w = getWidth();
        int pct=2;
		float tran = 0.1f + pct * 0.9f;

		GradientPaint GP = new GradientPaint(0, 0, COLOR1, 0, h, COLOR2, true);
		g2d.setPaint(GP);
		ButtonModel model = getModel();
		if (!model.isEnabled()) {
			GP = new GradientPaint(0, 0, COLOR1, 0, h, COLOR2, true);
		} else if (model.isRollover()) {
			GP = new GradientPaint(0, 0, COLOR1, 0, h, COLOR2, true);
		}

		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		GradientPaint p1;
		GradientPaint p2;

		//If is pressed ,orange
		if (getModel().isPressed()) {
			p1 = new GradientPaint(0, 0, new Color(0, 0, 0), 0, h - 1,
					new Color(100, 100, 100));
			p2 = new GradientPaint(0, 1, new Color(0, 0, 0, 50), 0, h - 3,
					new Color(255, 255, 255, 100));
		} else {
			p1 = new GradientPaint(0, 0, new Color(100, 100, 100), 0, h - 1,
					new Color(0, 0, 0));
			p2 = new GradientPaint(0, 1, new Color(255, 255, 255, 100), 0,
					h - 3, new Color(0, 0, 0, 50));
		}

		// g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, tran));
		RoundRectangle2D.Float r2d = new RoundRectangle2D.Float(0, 0, w - 1,
				h - 1, outerRoundRectSize, outerRoundRectSize);
		Shape clip = g2d.getClip();
		g2d.clip(r2d);
		g2d.fillRect(0, 0, w, h);
		g2d.setClip(clip);
		g2d.setPaint(p1);
		g2d.drawRoundRect(0, 0, w - 1, h - 1, outerRoundRectSize,
				outerRoundRectSize);
		g2d.setPaint(p2);
		g2d.drawRoundRect(1, 1, w - 3, h - 3, innerRoundRectSize,
				innerRoundRectSize);
		// g2d.dispose();
		_drawRect(g2d, 0, w, unselectedHigh, unselectedMid, unselectedLow);
		g2d.setPaint(null);

		super.paintComponent(g);
	}