java图形xml_使用Java从XML文件创建图形图像(png,jpg ..)

您可以使用众多Java XML库中的一个来提取名称.以下是使用

Java DOM中的XPath的示例:

private static List findNames(Document doc)

throws XPathExpressionException {

XPath xpath = XPathFactory.newInstance().newXPath();

NodeList nodes = (NodeList) xpath.evaluate("/process/p", doc,

XPathConstants.NODESET);

List names = new ArrayList();

for (int i = 0; i < nodes.getLength(); i++) {

names.add(nodes.item(i).getTextContent());

}

return names;

}

注意:它可能是拼写错误,但您的XML格式不正确 – 必须引用属性值.否则,XML解析将失败.

您可以使用AWT API绘制您想要的任何内容:

private static final int BORDER = 1;

private static final int PADDING = 2;

private static final int SPACER = 5;

private static void draw(Graphics2D g, List names) {

FontMetrics metrics = g.getFontMetrics();

Rectangle box = new Rectangle(1, 1, 0, 0);

box.height = metrics.getHeight() + (PADDING * 2);

g.setColor(Color.WHITE);

for (String name : names) {

box.width = metrics.stringWidth(name) + (PADDING * 2);

g.drawString(name, box.x + BORDER + PADDING, PADDING + BORDER +

metrics.getHeight());

g.drawRect(box.x, box.y, box.width, box.height);

box.x += box.width + (BORDER * 2) + SPACER;

}

}

这段代码只是用它们周围的方框绘制名称.我确定我的抵消都到处都是,但你可能会得到这个想法.

有一个imageio API可以保存几种流行的数据格式:

private static void save(List names, File file) throws IOException {

BufferedImage image = new BufferedImage(600, 50, BufferedImage.TYPE_INT_RGB);

Graphics2D g = image.createGraphics();

try {

draw(g, names);

} finally {

g.dispose();

}

ImageIO.write(image, "png", file);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值