代码之家  ›  专栏  ›  技术社区  ›  Simon

将Java GUI组件绘制到图像文件

  •  3
  • Simon  · 技术社区  · 14 年前

    假设我有

    JButton test = new JButton("Test Button");
    

    我想把这个按钮画成一个图像对象并保存到一个文件中。

    我试过这个:

    BufferedImage b = new BufferedImage(500, 500, BufferedImage.TYPE_INT_ARGB);
    test.paint(b.createGraphics());
    
    File output = new File("C:\\screenie.png");
    
    try
    {
        ImageIO.write(b, "png", output);
    }
    catch (IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    

    此代码生成了一个空的500x500 png文件。有人知道如何将GUI组件绘制到图像文件中吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Aaron Digulla    14 年前

    图像不是空的,它包含一个大小为0x0、为0.0的按钮。

    解决方案:必须添加布局或手动设置按钮的大小。

    注意:为了测试它,首先在JFrm上渲染组件。这可以让你很快看到会发生什么。