code: @Override
      protected void paintComponent(java.awt.Graphics g) {
          if (!isInitialized()) {
              return;
          }
  
          final Graphics2D G2 = (Graphics2D) g.create();
  
          CENTER.setLocation(getGaugeBounds().getCenterX(), getGaugeBounds().getCenterX());
  
          G2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
          G2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
          G2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
          G2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
  
          // Translate the coordinate system related to the insets
          G2.translate(getFramelessOffset().getX(), getFramelessOffset().getY());
  
          final AffineTransform OLD_TRANSFORM = G2.getTransform();
  
          // Draw combined background image
          G2.drawImage(bImage, 0, 0, null);
  
          // Draw compass rose
          G2.drawImage(compassRoseImage, 0, 0, null);
  
          // Draw the pointer
          G2.rotate((value - MIN_VALUE) * angleStep, CENTER.getX(), CENTER.getY() + 2);
          G2.drawImage(pointerShadowImage, 0, 0, null);
          G2.setTransform(OLD_TRANSFORM);
          G2.rotate((value - MIN_VALUE) * angleStep, CENTER.getX(), CENTER.getY());
          G2.drawImage(pointerImage, 0, 0, null);
          G2.setTransform(OLD_TRANSFORM);
  
          // Draw combined foreground image
          G2.drawImage(fImage, 0, 0, null);
  
          if (!isEnabled()) {
              G2.drawImage(disabledImage, 0, 0, null);
          }
  
          // Translate the coordinate system back to original
          G2.translate(-getInnerBounds().x, -getInnerBounds().y);
  
          G2.dispose();
      }
docs: <editor-fold defaultstate="collapsed" desc="Visualization">