我在使用简单的绘图程序保存 BufferedImage 时遇到了问题。当我从绘画中保存图像时,例如我之前画的蛇的图片,它可以很好地保存图像,但它并没有像您想象的那样保存它。它不是将图像保存到 C:\ 驱动器(或用户可能使用的任何驱动器),而是将图像保存到 eclipse 工作区。这当然是不可接受的,因为这需要直接提供给用户的主要访问位置。这是用于保存缓冲图像的方法。
static void saveImage() {
try {
ImageIO.write(background, "png",
new File(fileName + ".png"));
} catch (IOException e) {
e.printStackTrace();
}
}
所以在这里,背景显然是要保存的图像,png 是扩展名,而 fileName 是一个字符串,它是使用先前的方法保存的,在这里并不重要。此方法将图像保存到eclipse 工作区。这是不好的。我们需要将其保存到默认驱动器。我该如何做到这一点?如果您需要其他任何东西来帮助您回答问题,请告诉我。
编辑:因此,根据要求,这是更改文件名的代码。它在一个完全不同的 UI 的不同类中,因为我不确定要发布多少,所以我将发布 actionListener 和getName()
方法。这里发生的是JTextField
,一旦JButton
按下 a ,就会从其中提取字符串并将其用作fileName
. 这是代码:
`finishButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ProgramUI.fileName = getName();
ProgramUI.fileHasName = true;
ProgramUI.saveImage();
frame.dispose();
}
});
}
public String getName() {
return nameField.getText();
}
`