我有一个场景,我需要显示表(使用JTable生成),将其转换为png图像,然后使用servlet显示它们。
以下是servlet中用于显示表的代码:
{
table = u.generateTableChart("datamonth");
saveToServlet(table, table.getTableHeader(), p_resp);
}
void saveToServlet(JTable table, JTableHeader header,
HttpServletResponse p_resp)
{
int w = Math.max(table.getWidth(), header.getWidth());
int h = table.getHeight() + header.getHeight();
OutputStream out = null;
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
header.paint(g2);
g2.translate(0, header.getHeight());
table.paint(g2);
g2.dispose();
try {
p_resp.setContentType("image/png");
out = p_resp.getOutputStream();
ImageIO.write(bi, "png", out);
} catch (IOException ioe) {
System.out.println("write: " + ioe.getMessage());
}
}这似乎抛出了这个错误,当我试图在网页上查看它时,图像无法显示,因为它有太多错误。
我能够将文件存储在一个临时位置,并且我能够看到图表。
对于使用JFreeCharts生成的图表,我使用的是:
ServletOutputStream out = null;
try {
out = p_resp.getOutputStream();
p_resp.setContentType("image/png");
chart=u.genarateLineChart(m_martiniInstance);
ChartUtilities.writeChartAsJPEG(out, chart, 625, 500);
}还是不走运
先谢谢你,Bhavya
发布于 2011-07-04 17:39:56
我认为问题是您将内容类型设置为"image/png",但是使用jpeg writeChartAsJPEG编写
ChartUtilities.writeChartAsPNG(...)https://stackoverflow.com/questions/6569606
复制相似问题