2017-06-01 3 views
0

mxGraphComponentcreateComponentsをオーバーライドしたグラフがあり、すべての頂点をJTableとしてレンダリングしています。それが唯一の入力としてmxGraphを取得します。私はmxCellRenderer.create*Documentはそれを扱うことができなかったことを期待しながら、私はそれを見ていること、それは明らかにできないカスタム頂点コンポーネントを含むJGraphXグラフを画像にエクスポートする

BufferedImage image = mxCellRenderer.createBufferedImage(graphComponent.getGraph(), null, 1.0, null, graphComponent.isAntiAlias(), null); 
ImageIO.write(image, "PNG", new File("C:\\Temp\\graph.png")); 

で画像を保存する(もちろん、今ことを期待しました、mxGraphComponentではなく!)。カスタムレンダラを含むイメージとしてグラフを保存する方法はありますか?

答えて

0

これは私のユースケース

JViewport viewport = graphComponent.getViewport(); 
Color savedBackground = viewport.getBackground(); 
viewport.setBackground(new Color(0, 0, 0, 0)); 
try { 
    Dimension size = viewport.getPreferredSize(); 
    BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g = image.createGraphics(); 
    viewport.printAll(g); 
    g.dispose(); 
    try { 
     ImageIO.write(image, "png", target.getFile()); 
    } catch (IOException e1) { 
     NotificationsUtil.showError("Failed to save image", e1); 
    } 
} finally { 
    viewport.setBackground(savedBackground); 
} 
のために働い
関連する問題