private final void renderComponent(final Graphics2D graphics) {
        if (widgetRenderer == null) {
            return;
        }
        if ((image == null || image.getWidth() != getWidth() || image.getHeight() != getHeight()) && (getHeight() > 0 && getWidth() > 0)) {
            image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TRANSLUCENT);
            Graphics2D g2 = (Graphics2D) image.getGraphics();
            try {
                g2.translate(-getX(), -getY());
                widgetRenderer.renderWidget(this, g2);
            } finally {
                g2.dispose();
            }
        }
        if (image != null) graphics.drawImage(image, getX(), getY(), null);
    }