- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好!我的程序有问题。
我在 java 中使用 JUNG 库,当我编译程序时,出现以下两个错误:
Error:(43, 61) java: incompatible types: org.apache.commons.collections15.Transformer<java.lang.Integer,java.awt.Paint> cannot be converted to com.google.common.base.Function<? super java.lang.Integer,java.awt.Paint>
Error:(44, 56) java: incompatible types: org.apache.commons.collections15.Transformer<java.lang.String,java.awt.Stroke> cannot be converted to com.google.common.base.Function<? super java.lang.String,java.awt.Stroke>
我不知道这些错误对于不兼容的数据类型意味着什么。我该如何解决这个问题?
预先感谢您!
“GraphView”类:
import edu.uci.ics.jung.algorithms.layout.CircleLayout;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.visualization.BasicVisualizationServer;
import edu.uci.ics.jung.visualization.decorators.ToStringLabeller;
import edu.uci.ics.jung.visualization.renderers.Renderer;
import org.apache.commons.collections15.Transformer;
import javax.swing.*;
import java.awt.*;
public class GraphView {
public GraphView() {
GraphBuilding gb = new GraphBuilding(); // This builds the graph
// Layout<V, E>, BasicVisualizationServer<V,E>
Layout<Integer, String> layout = new CircleLayout(gb.g);
layout.setSize(new Dimension(300, 300));
BasicVisualizationServer<Integer, String> vv =
new BasicVisualizationServer<Integer, String>(layout);
vv.setPreferredSize(new Dimension(350, 350));
// Setup up a new vertex to paint transformer...
Transformer<Integer, Paint> vertexPaint = new Transformer<Integer, Paint>() {
public Paint transform(Integer i) {
return Color.GREEN;
}
};
// Set up a new stroke Transformer for the edges
float dash[] = {10.0f};
final Stroke edgeStroke = new BasicStroke(1.0f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
Transformer<String, Stroke> edgeStrokeTransformer =
new Transformer<String, Stroke>() {
public Stroke transform(String s) {
return edgeStroke;
}
};
vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint);
vv.getRenderContext().setEdgeStrokeTransformer(edgeStrokeTransformer);
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller());
vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR);
JFrame frame = new JFrame("Custom Graph View");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
}
}
“GraphBuilding”类:
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.graph.SparseGraph;
import edu.uci.ics.jung.graph.util.EdgeType;
public class GraphBuilding {
// Graph<V, E> where V is the type of the vertices
// and E is the type of the edges
public Graph<String, String> g = new SparseGraph<String, String>();
public GraphBuilding() {
// Add some vertices. From above we defined these to be type Integer.
g.addVertex("A");
g.addVertex("B");
g.addVertex("C");
// Add some edges. From above we defined these to be of type String
// Note that the default is for undirected edges.
g.addEdge("Edge-1", "A", "B", EdgeType.DIRECTED); // Note that Java 1.5 auto-boxes primitives
g.addEdge("Edge-2", "B", "C", EdgeType.DIRECTED);
// Let's see what we have. Note the nice output from the
// SparseMultigraph<V,E> toString() method
System.out.println("The graph g = " + g.toString());
}
}
“主”类:
public class Main {
public static void main(String[] args) {
new GraphView();
}
}
最佳答案
看起来您正在使用版本 2.1.1(或 2.1),但您自己的代码基于旧版本。 Jung 在 2.1 中将集合库更改为 Guava
这是您的代码,经过修改以适用于 2.1.1:(如果您使用 jung-2.1,我注意到一个错误会给您带来 NPE。只需更改为 2.1.1)
import com.google.common.base.Function;
import edu.uci.ics.jung.algorithms.layout.CircleLayout;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.visualization.BasicVisualizationServer;
import edu.uci.ics.jung.visualization.decorators.ToStringLabeller;
import edu.uci.ics.jung.visualization.renderers.Renderer;
import javax.swing.*;
import java.awt.*;
public class GraphView {
public GraphView() {
GraphBuilding gb = new GraphBuilding(); // This builds the graph
// Layout<V, E>, BasicVisualizationServer<V,E>
Layout<String, String> layout = new CircleLayout(gb.g);
layout.setSize(new Dimension(300, 300));
BasicVisualizationServer<String, String> vv =
new BasicVisualizationServer<String, String>(layout);
vv.setPreferredSize(new Dimension(350, 350));
// Setup up a new vertex to paint transformer...
Function<String, Paint> vertexPaint = new Function<String, Paint>() {
public Paint apply(String i) {
return Color.GREEN;
}
};
// Set up a new stroke Transformer for the edges
float dash[] = {10.0f};
final Stroke edgeStroke = new BasicStroke(1.0f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
Function<String, Stroke> edgeStrokeTransformer =
new Function<String, Stroke>() {
public Stroke apply(String s) {
return edgeStroke;
}
};
vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint);
vv.getRenderContext().setEdgeStrokeTransformer(edgeStrokeTransformer);
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller());
vv.getRenderer().getVertexLabelRenderer()
.setPosition(Renderer.VertexLabel.Position.CNTR);
JFrame frame = new JFrame("Custom Graph View");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
}
}
关于Java JUNG - 不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580440/
我正在实现一个用于创建图形节点并使用 连接它们的接口(interface)郑 . 我想使用 edge 创建一些可以从一个现有节点移动到另一个节点的节点。两个节点之间作为它们的路径 (它将用于显示一些
我必须创建一个具有其自定义节点类型的图形,并且节点和连接是从 txt 文件中一一读取的。 文件格式是这样的:startNode 属性endNode。 每次阅读一行,我都会创建 2 个节点对象:star
目前,我正在做的是: WeakComponentClusterer wcc = new WeakComponentClusterer(); Collection> ccs = FilterUtils.
我使用 JUNG 来可视化我的图形/网络。 现在我想将图形(如 VisualizationViewer 中所见)保存在图像文件中。我使用 VisualizationViewer(扩展 JPanel)的
我可以做已选 顶点标签红色使用 vertexLabelRenderer 声明如下: DefaultVertexLabelRenderer vertexLabelRenderer=new Default
是否可以更改 JUNG 中的边缘形状?例如,我想让边缘以类似于进度条的方式逐渐改变它的颜色。边缘标签字体大小呢? 谢谢。 最佳答案 是的,有点......另外 - 我不确定你使用的是哪个版本的 JUN
我正在寻找 JUNG 来可视化有向图。 JUNG 2.0.1 下载附带 17 个不同的 jar 文件,其中一些似乎是示例和演示。 有谁知道如果你想使用JUNG,需要哪些真正的库? 最佳答案 没关系,它
我正在尝试对 JUNG 图包中的图进行顶点切割。下面的图片可以最好地解释这一点: 现在,我将从图中删除顶点“c1”: 正如您所看到的,顶点“c1”已从图中删除,但顶点“c2”和“c3”也已删除 当我剪
我在数据库中存储了邻接矩阵,我想使用 Java Jung 以交互方式编辑它们图形包。交互式图形编辑可以在示例GraphEditorDemo中看到。我已经完成了一种方法,该方法将从邻接矩阵中的信息创建图
我正在尝试从 Java Jung Graph 包构建以下内容:EdmondsKarp Object EdmondsKarpMaxFlow alg = new EdmondsKarpMaxFlow(g,
我有一个包含多个组件的未连接图。如何获取每个子图组件的 Graph 实例?例如,考虑以下图表: 我想要的是能够返回这些子图组件。子图组件的示例是具有顶点的图:{c0, c1, c2, c3} 我想要这
我想知道是否有可能/我将如何在 JUNG 中创建这样的东西: 最佳答案 取决于你所说的“类似的事情”是什么意思。如果您想要一个漂亮、整洁的固定图表,那么您最好手工绘制它。 如果您想要一个更通用的图解决
所以我正在使用 JUNG,这对我来说是新事物。我已经实现了一个简单的 GUI,它显示顶点和边,并且通过使用 Transformer 我可以更改形状等。但是我该如何沿着边缘制作图像动画呢? 如果边缘是直
首先,我是 JUNG 的新手。我试图使用 TreeLayout 在 JUNG 中可视化树,但我总是面临顶点标签重叠的问题。当节点和路径数量很多时更是如此。关于如何防止这种重叠有什么想法吗? 我知道顶点
我们用 jung 开发了一个小型图形编辑器,您可以在其中用鼠标绘制图形/网络。我们使用 VisualizationViewer 作为我们绘制的面板。 VisualizationViewer 保存它必须
我想可视化我的 Java 应用程序中的图形,为此我使用 JUNG。问题是我的图形包含大量节点和边,JUNG 提供的哪些布局可以给我最小的交叉边缘?以便图形看起来更好? 最佳答案 JUNG 布局本身并不
我目前正在开发一种使用图形可视化宏基因组数据的工具,因此开发了 Java JUNG 图形可视化库。 当显示大约 1000 个节点时,我遇到了延迟,无论是通过移动相机还是拖动一些节点。 是否有任何黑客可
您好!我的程序有问题。 我在 java 中使用 JUNG 库,当我编译程序时,出现以下两个错误: Error:(43, 61) java: incompatible types: org.apache
我创建了一个 java 程序,该程序从 1 个顶点开始,从那里开始每个周期添加 1 个顶点和 2 条边。它使用静态布局 Layout staticLayout = new StaticLayout(g
我有一组子图,我需要在从中提取它们的图上匹配它们。我还需要计算每个子图在此类图中出现的次数(我需要存储所有可能的匹配项)。考虑到子图和图的边标签必须完美匹配,但是顶点标签不需要相互匹配。我使用 JUN
我是一名优秀的程序员,十分优秀!