Могу ли я создать 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;
}