У меня есть график JFreeChart, который я хотел бы сохранить в виде файла PNG из приложения Java Swing.
XYPlot plot = (XYPlot)chart.getPlot();
plot.setBackgroundPaint(new Color(255,228,196));
ChartPanel panel = new ChartPanel(chart);
setContentPane(panel);
panel.setSize(600, 300);
JFileChooser exportChooser = new JFileChooser();
exportChooser.setSelectedFile(new File("test plot"));
FileFilter filter = new FileNameExtensionFilter("PNG File","png");
exportChooser.setFileFilter(filter);
int returnVal = exportChooser.showDialog(null, "Export");
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = exportChooser.getSelectedFile();
try {
OutputStream out = new FileOutputStream(file);
ChartUtilities.writeChartAsPNG(out, chart, panel.getWidth(), panel.getHeight());
}catch (IOException e) {
e.printStackTrace();
}catch (Throwable t){
t.printStackTrace();
}
}
Я получил эту ошибку:
java.lang.UnsatisfiedLinkError:
javax.imageio.ImageIO.write(Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/OutputStream;)
Я не уверен, что это значит и как это решить. Я также не уверен, что мой код имеет смысл, особенно OutputStream out = new FileOutputStream(file);
. Буду очень признателен за любую информацию!
ChartUtilities.saveChartAsPNG()
? - person trashgod   schedule 04.11.2018JFreeChart
, упомянутая здесь, или проблема установки Java. - person trashgod   schedule 05.11.2018java --version
в среде выполнения, когда вы получаете сообщение об ошибке? Похоже на проблему с JRE. - person Harald K   schedule 05.11.2018java.desktop
является частью этой JRE? Теперь можно включать/исключать модули и создавать адаптированную минимальную JRE точно для ваших нужд с помощью инструментаjlink
. - person Harald K   schedule 05.11.2018