Java Jung将圆的大小设置为其字符串的宽度(标签)

时间:2013-03-27 16:55:30

标签: java size jung vertices

我开始使用java jung。由于缺乏好的教程,我遇到了一些问题。我想我需要一些时间来进入它。

我的问题是:

我创建了一个带有顶点(圆圈)的网络,这些顶点用文本(字符串)标记。 我的问题是使圆圈的大小(宽度)适合字符串。

我想动态设置它但不知道如何遍历顶点。

2 个答案:

答案 0 :(得分:3)

任何有相同问题的人的解决方案:

FontMetrics fm = vv.getFontMetrics(vv.getFont());
int width = fm.stringWidth(i);

vv是VisualizationViewer

答案 1 :(得分:1)

对于vvVizualizationViewer,您可以添加VertexShapeTransformer。 以下Scala代码可以轻松转换为Java。

vv.getRenderContext().setVertexShapeTransformer(
new org.apache.commons.collections15.Transformer[String,java.awt.Shape]() {
  def transform(label: String): java.awt.Shape = {
    val width = label.length * 10.0
    val circle = new java.awt.geom.Ellipse2D.Double(-(width/2), -12.5, width, 25);
    circle // return circle
  }
})