【问题标题】:Jung cannot paint white Rectangle as vertex荣格无法将白色矩形绘制为顶点
【发布时间】:2019-07-29 21:10:06
【问题描述】:

我正在尝试在 Jung 中填充一个 Rectangle 形状的顶点,如示例和文档中所述,我使用了 Transformer

        Transformer<String, Paint> vertexColor = new Transformer<String,Paint>() {
        public Paint transform(String i) {
                return Color.WHITE;
        }
    };

在指令之后:

        vv.getRenderContext().setVertexFillPaintTransformer(vertexColor);

vv 是VisualizationViewer
但是 Transformer 不起作用,它继续说 Type mismatch: cannot convert from Color to Paint 尽管许多教程显示相同的行。

完整的方法是:

    @PluginVariant(requiredParameterLabels = {0})
public static JComponent visualize(final UIPluginContext context, final OWLOntologia ontology) {

    JPanel base = new JPanel();

    Graph<String, String> grafo = OntologyGraph.getGraph(ontology);

    Layout<String, String> layout = new TreeLayout<String, String>((Forest<String, String>) grafo);
    layout.setSize(new Dimension(300, 300));
    VisualizationViewer<String, String> vv = new VisualizationViewer<String, String>(layout);
    vv.setPreferredSize(new Dimension(300000, 300000));

    Transformer<String, Shape> vertexShape = new Transformer<String, Shape>(){
        @Override
        public Rectangle transform(String arg0) {
            Rectangle nodo = new Rectangle();
            nodo.height = 80;
            nodo.width = 200;

            return nodo;
        }
    };


    Transformer<String, Paint> vertexColor = new Transformer<String,Paint>() {
        public Paint transform(String i) {
                return Color.WHITE;
        }
    };


    vv.getRenderContext().setVertexFillPaintTransformer(vertexColor);
    vv.getRenderContext().setVertexShapeTransformer(vertexShape);
    vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<String>());
    vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller<String>());
    vv.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);

    final DefaultModalGraphMouse<String, Number> graphMouse3 = new DefaultModalGraphMouse<>();
    vv.setGraphMouse(graphMouse3);
    graphMouse3.setMode(DefaultModalGraphMouse.Mode.PICKING);

    base.add(vv);

    return base;
}

【问题讨论】:

    标签: java swing colors paint jung


    【解决方案1】:

    您的导入说明了什么?我的猜测是您的 Color 或 Paint 是从 javafx(或 java.awt 以外的其他地方)导入的。

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 2017-12-22
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多