void (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); }