Могу ли я создать BufferedImage из JPanel без рендеринга в JFrame?

Возможно ли создать BufferedImage из JPanel без предварительного рендеринга его в JFrame? Я искал везде, где только могу придумать, и не могу найти ответ. Кто-нибудь может помочь?

Вот пример кода. Если я не откомментирую код JFrame, мой BufferedImage будет пустым.

    test(){
//      JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        Dimension dim = new Dimension(50,50);
        panel.setMinimumSize(dim);
        panel.setMaximumSize(dim);
        panel.setPreferredSize(dim);
        JLabel label = new JLabel("hello");
        panel.add(label);
//      frame.add(panel);
//      frame.pack();
        BufferedImage bi = getScreenShot(panel);

        //...code that saves bi to a jpg
    }

    private BufferedImage getScreenShot(JPanel panel){
        BufferedImage bi = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_ARGB);
        panel.paint(bi.getGraphics());
        return bi;
    }

Ответы на вопрос(2)

Ваш ответ на вопрос