我有一个可写映像,我想通过使用FileChooser保存。我将如何做到这一点,因为它不适用于以下代码:
public void handle(ActionEvent event) {
FileChooser fileChooser = new FileChooser();
//Set extension filter
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.png");
fileChooser.getExtensionFilters().add(extFilter);
//Show save file dialog
File file = fileChooser.showSaveDialog(primaryStage);
if(file != null){
SaveFile(writableImage, file);
}
}下面是SaveFile()类的代码:
private void SaveFile(writableimage content, File file){
try {
FileWriter fileWriter = null;
fileWriter = new FileWriter(file);
fileWriter.write(content);
fileWriter.close();
} catch (IOException ex) {
}
}发布于 2017-11-10 15:48:12
您需要使用AWT缓冲图像阅读器,而不是使用文件编写器,请尝试如下
private void SaveFile(Image content, File file){
try {
BufferedImage bufferedImage = SwingFXUtils.fromFXImage(image, null);
ImageIO.write(bufferedImage, "png", file);
} catch (IOException ex) {
ex.printStackTrace();
}
}我还在网上找到了这个http://java-buddy.blogspot.com/2014/12/javafx-filechooser-open-and-save-image.html
编辑:你也应该打印你的异常,因为当它坏了,你不知道它为什么会告诉它是哪一行打破了它
https://stackoverflow.com/questions/47211852
复制相似问题