Как сохранить Eclipse draw2d IFigure в PNG в среде без головы? - PullRequest
0 голосов
/ 29 марта 2020

Нужна помощь. Я пытаюсь создать изображение PNG из объекта org.eclipse.draw2d.IFigure в среде без головы (пакет без интерфейса). Мне нужно приложение java как можно более простым.

import java.io.File;

import org.eclipse.draw2d.ChopboxAnchor;
import org.eclipse.draw2d.Connection;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.PolygonShape;
import org.eclipse.draw2d.PolylineConnection;
import org.eclipse.draw2d.RectangleFigure;
import org.eclipse.draw2d.ToolbarLayout;
import org.eclipse.draw2d.XYLayout;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;

public class GenealogyView {
    public static void main(String[] args) {
        new GenealogyView().run();
    }

    private void run() {
        IFigure figure = createRootFigure();

        File export = new File("export.png");
        // export figure to export.png
        // export code should go here 

    }



    private IFigure createRootFigure() {
        // Create a root figure and simple layout to contain
        // all other figures
        IFigure root = new Figure();
        root.setSize(365, 280);
        root.setLayoutManager(new XYLayout());

        // Add the father "Andy"
        IFigure andy = createPersonFigure("Andy");
        root.add(andy, new Rectangle(new Point(10, 10), andy.getPreferredSize()));

        // Add the mother "Betty"
        IFigure betty = createPersonFigure("Betty");
        root.add(betty, new Rectangle(new Point(230, 10), betty.getPreferredSize()));
        return root;
    }

    private IFigure createPersonFigure(String name) {
        RectangleFigure rectangleFigure = new RectangleFigure();
        //rectangleFigure.setBackgroundColor(ColorConstants.lightGray);
        rectangleFigure.setLayoutManager(new ToolbarLayout());
        rectangleFigure.setPreferredSize(100, 100);
        rectangleFigure.add(new Label(name));
        return rectangleFigure;
    }
}

На данный момент, в дополнение к JRE, я использую библиотеку org.eclipse.draw2d.jar.

Заранее спасибо за идеи.

...