有没有人知道你是否能够在JUNG中为顶点标签设置文本的颜色。
我正在使用可视化查看器,似乎可以为其他所有内容设置颜色。
vv = new VisualizationViewer<String,Integer>(treeLayout, new Dimension(410,557));
Transformer<String,Paint> vertexPaint = new Transformer<String,Paint>() {
public Paint transform(String b) {
return Color.orange;
}
};
vv.setBackground(Color.white);
vv.getRenderContext().setEdgeShapeTransformer(new EdgeShape.Line());
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint);
//vv.getRenderContext().setVertexFontTransformer(vertexFont);
// add a listener for ToolTips
vv.setVertexToolTipTransformer(new ToStringLabeller());
vv.getRenderContext().setArrowFillPaintTransformer(new ConstantTransformer(Color.WHITE));发布于 2018-02-14 20:14:45
DefaultVertexLabelRenderer和DefaultEdgeLabelRenderer扩展了JLabel (它类似于单元格渲染器在JTable和JTree中的工作方式)。默认情况下,它使用VisualizationViewer的前景色来绘制标签文本。
vv.setForegroundColor(Color.red);会让你所有的标签都变成红色。这种方法比让所有标签解析HTML的开销要小。
很抱歉,解决方案如此晦涩。
此外,由于默认渲染器扩展了JLabel,因此html的用法与JLabel的用法相同。有很好的在线资源来展示在javax.swing中使用html的例子。缺少的是在JUNG中使用html和在javax.swing中使用html之间建立联系的文档。
发布于 2014-04-03 02:28:33
您可以在标签中使用超文本标记语言来指定颜色;示例如下:https://stackoverflow.com/a/2017576/664856
发布于 2014-04-03 02:39:26
在你的情况下,
vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.RED));应该可以工作(如果希望选定的顶点为红色)。我自己测试过的。这将应用于选定的顶点。
在检查代码时,我必须相信我提供的链接对于那些未被选中的顶点是正确工作的,但我实际上并没有尝试实现该链接。
https://stackoverflow.com/questions/22816672
复制相似问题