【问题标题】:Clojure JUNG setVertexFillPaintTransformerClojure JUNG setVertexFillPaintTransformer
【发布时间】:2017-04-26 20:13:02
【问题描述】:

我有一个图表,由 JUNG 构建。 现在我想改变特定顶点的颜色。 在 Java 中是这样的:

    Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() {
    public Paint transform(V input) {
         return Color.red;
    }
};

vv.getRenderContext().setVertexFillPaintTransformer(vertexColor);

当我把它翻译成 Clojure 时

(def vertex-paint (proxy [Transformer] [] (transform [i] java.awt.Color/GREEN)))
(.setVertexFillPaintTransformer vertex-paint)

以下异常被抛出: Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: Cannot cast tableau.tableau.proxy$java.lang.Object$Transformer$4341005c to com.google.common.base.Function

谢谢!

【问题讨论】:

    标签: java clojure transform jung


    【解决方案1】:

    我明白了: 我将[com.google.guava/guava "21.0"] 添加到我的 Leiningen 依赖项中 在特定命名空间中导入com.google.common.base.Function 并改变了

    (def vertex-paint (proxy [Transformer] [] (transform [i] java.awt.Color/GREEN)))
    

    (def vertex-paint (proxy [Function] [] (apply [i] java.awt.Color/GREEN)))
    

    Function 和 apply 来自 com.google.commom.base.Function。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多