@Override public void paintComponent(Graphics g2) {

	        Graphics2D g = (Graphics2D) g2; // Create Graphics Object
	        super.paintComponent(g); // Paint Background

			//move circle to centre of JPanel
			g.translate(thickness/2, thickness/2);

			if(fill==true)
			{
		 	if(fill_type<=0 || fill_type>=3)//if fill_type is not range
		 		{
			 		fill_type=1;
		 		}
		 			if(fill_type==1)
			 		{
			 			Color fillC = new Color(fillColor);
			 			g.setPaint(fillC);//Colour main body
			 		}
			 		else if(fill_type==2)
			 		{
			 			Color grad_col1 = new Color(color1);
						Color grad_col2 = new Color(color2);
						// gradient paint
				 		GradientPaint gradcol = new GradientPaint(x_at_color1, y_at_color1,
				 								grad_col1, x_at_color2, y_at_color2,
				 								grad_col2, is_cyclic);
						g.setPaint(gradcol);//Gradient main body
			 		}

			 		if(alpha>=0 & alpha<=1)
			 		{
			 			g.setComposite(AlphaComposite.getInstance(
			 					AlphaComposite.SRC_OVER, (float)alpha));
			 		}
					g.fillOval(0, 0, radius*2, radius*2);	//create main body
			}

	 		if(thickness!=0)
	 		{
	 			Color lineC = new Color(lineColor);
	 			//set edge thickness
		 	    BasicStroke edgeThickness = new BasicStroke(thickness);
	 			g.setStroke(edgeThickness); //set line thickness
	 			g.setPaint(lineC);			//Colour line
	 			if(alpha>=0 & alpha<=1)
	 			{
	 				g.setComposite(AlphaComposite.getInstance(
	 						AlphaComposite.SRC_OVER, (float)alpha));
	 			}
	 			//create line round shape
	 			g.drawOval(0, 0, radius*2, radius*2);
	 		}
	    }