Jam*_*own 4 java swing image jpanel javax.imageio
我错过了导出文件代码,但我不知道我需要添加什么.我在JPanel - >面板中有一个绘制的图像,并希望将该图像保存到我的桌面.我需要添加什么?
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(panel);
Run Code Online (Sandbox Code Playgroud)
我已将以下代码添加到paintComponent方法中:
bi = new BufferedImage(panel.getSize().width,panel.getSize().height,
BufferedImage.TYPE_INT_ARGB);
g = bi.createGraphics();
Run Code Online (Sandbox Code Playgroud)
然后保存按钮执行此操作...我还缺少什么?或者做得不正确.
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(panel);
try{ImageIO.write(bi,"png",new File("test.png"));}catch (Exception ex) {}
Run Code Online (Sandbox Code Playgroud)
你的问题是缺少一些重要的信息:你是如何在JPanel上画画的?在我看来,聪明的方法是绘制到BufferedImage,然后简单地将BufferedImage保存到文件中ImageIO.write(...)
编辑
你说:
我只是将多边形绘制到扩展JPanel的类上.我通过paintComponent方法创建它们.
同样,我建议您通过获取其Graphics上下文,使用此Graphics对象绘制到图像,然后处理Graphics对象,将它们绘制到BufferedImage.您可以paintComponent(...)通过调用在JPanel的方法中显示BufferedImage g.drawImage(...).然后,如果要再次保存绘图,只需保存BufferedImage即可.