swing Java:将基于另一个图形对象的新图形对象导出为PNG
我一直在尝试导出图形对象的图像
这是该方法的外观:
private BufferedImage paintImage;
public void paint(Graphics g){
super.paint(g);
paintImage = new BufferedImage(500, 600, BufferedImage.TYPE_INT_ARGB);
Graphics2D statsExGraphics = paintImage.createGraphics();
imageText.paint(statsExGraphics);
try{
ImageIO.write(paintImage, "PNG", new File("src/statsexport2.png"));
}catch(IOException e){
e.printStackTrace();
}
map.paint(g);
imageText.paint(g);
switch (backgroundState) {
case 1:
grid.paintItems(g);
penguin.paint(g);
purpleBear.paint(g);
blueBear.paint(g);
break;
case 2:
EndgameGraphics done = new EndgameGraphics(endCondition);
done.run();
break;
default: System.out.println("Error invalid background");
}
}
我会将g对象强制转换到Graphics2D对象上,但是BuffereImage对象不会连接到图形
我需要全部导出对象,以便在游戏结束时将其重新显示到面板上。done(EndgameGraphics对象)是生成一个新JFrame的代码,其中包含一个背景图像和一个按钮,我需要将imageText图形对象重新插入到这个新JFrame中。在EndgameGraphics中,我处理了包含上述方法中最初绘制的所有内容的JFrame,并实例化了一个新的JFrame
我在想这句话
imageText.paint(statsExGraphics);
不是一个执行了我要寻找的逻辑的语句,我不确定从这里走到哪里
当前代码正在生成一个空白图像。是否有Graphics2D的方法可以接受Graphics的参数并将其绘制到Graphics2D对象上
也许有另一种方法可以复制这个图形对象,并在EndgameGraphics中重新创建它,以添加到新的JFrame中
任何帮助都将不胜感激,谢谢
共 (0) 个答案