public void update(Component component, Point point) {
        if (image == null || image.getWidth() < component.getWidth() || image.getHeight() <  component.getHeight()) {
            image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_ARGB);
        }

        SneakyGraphics2D g2d = new SneakyGraphics2D((Graphics2D) image.getGraphics());
        component.paint(g2d);
        g2d.dispose();

        lastResult = new Result(g2d.getPOI(), component, point);
    }
public void update(Component component, Point point)