小编Bro*_*oke的帖子

我可以从JPanel创建BufferedImage而无需在JFrame中呈现吗?

是否可以从JPanel创建BufferedImage而无需先在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;
    }
Run Code Online (Sandbox Code Playgroud)

java swing bufferedimage jpanel jframe

11
推荐指数
1
解决办法
8731
查看次数

标签 统计

bufferedimage ×1

java ×1

jframe ×1

jpanel ×1

swing ×1