Konwertuj JPanel na obraz w JScrollPane

Chcę przekonwertować JPanel na obraz. Użyłem następującej metody:

public BufferedImage createImage(){

    int w = getWidth();
    int h = getHeight();
    BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    Graphics2D g = bi.createGraphics();
    paint(g);
    return bi;
}

Ale problem polega na tym, że JPanel jest zawarty w JScrollPane. Więc kiedy konwertuję jpanel na obraz, obraz zawiera tylko części widoczne w jpanelu, a części ukryte w przewijanym pasku nie są zawarte w obrazie.

Czy są jakieś rozwiązania, aby uzyskać pełną zawartość JPanel w obrazie?

questionAnswers(3)

yourAnswerToTheQuestion