JUNG:按顺序放置树节点

2023-11-29

将节点添加到我的DelegateTree,它们在视觉上并不按照我添加它们的顺序出现。 我一直在寻找解决方案,但还没有找到任何东西。 有谁知道如何改变这个吗?

提前致谢!

EDIT:我的代码

/**
 * Generate a visualization of the decision tree.
 * 
 * @param tree
 *            The decision tree
 * @return A component to be placed inside a JPanel
 */
public static GraphZoomScrollPane generateTree(Tree tree,
        GraphicalUserInterface gui) {

    /* Create a new tree */
    DelegateTree<Node, Edge> graphTree = new DelegateTree<Node, Edge>();

    /* Add all nodes and vertices to the tree */
    graphTree.addVertex(tree.getRoot());
    addChildren(tree.getRoot(), graphTree);

    /* Create the visualization */
    DynamicTreeLayout<Node, Edge> treeLayout = new DynamicTreeLayout<Node, Edge>(graphTree, 100, 100);
    VisualizationViewer<Node, Edge> vv = new VisualizationViewer<Node, Edge>(
            treeLayout);
    vv.setDoubleBuffered(true);
    vv.setBackground(Color.WHITE);
    vv.getRenderContext().setEdgeLabelTransformer(
            new ToStringLabeller<Edge>());
    vv.getRenderContext().setEdgeShapeTransformer(
            new EdgeShape.Line<Node, Edge>());
    vv.getRenderContext().setVertexLabelTransformer(
            new ToStringLabeller<Node>());
    vv.getRenderer().getVertexLabelRenderer()
            .setPosition(Renderer.VertexLabel.Position.S);

    vv.addGraphMouseListener(new ClickNode(gui, vv));

    final DefaultModalGraphMouse<Node, Edge> graphMouse = new DefaultModalGraphMouse<Node, Edge>();

    graphMouse.setMode(ModalGraphMouse.Mode.TRANSFORMING);

    vv.setGraphMouse(graphMouse);

    final GraphZoomScrollPane gzsp = new GraphZoomScrollPane(vv);

    return gzsp;
}

/**
 * Recursively add all nodes and edges to the tree.
 * 
 * @param node
 *            The parent node
 * @param tree
 *            The tree visualization
 */
private static void addChildren(Node node, DelegateTree<Node, Edge> tree) {
    for (int i = 0; i < node.getChildren().size(); i++) {
        tree.addChild(new Edge(node.getChildren().get(i).getEdgeLabel()), node, node
        .getChildren().get(i));
        addChildren(node.getChildren().get(i), tree);
    }
}

使用 DelegateTree 的底层实现,根据顶点的自然顺序 (*Sorted*Graph) 对其顶点进行排序,或者使用插入顺序 (*Ordered*Graph)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JUNG:按顺序放置树节点 的相关文章

随机推荐

  • 如何自定义浮动操作按钮形状?

    我正在尝试创建一个具有自定义形状的自定义 FAB 我尝试过设置android background随着shapeAppearanceOverlay and shapeAppearance财产 但仍然没有运气
  • 如何使用 Firefox SDK 插件将 iframe 附加到托管页面?

    Assume frame htmlFirefox SDK 插件中的数据文件夹内 如何附加 iframe 并定义frame html作为它的来源 附加信息 由于CPS 不可能使用内联源 所以我不能使用data load frame html
  • Ubuntu 11.04 上的 wx.TaskBarIcon

    Ubuntu 11 04下Unity没有托盘 如何让图标出现在 Unity 中的某个位置 wx TaskBarIcon 没有出现在任何地方 谢谢 使用 Ubuntu Unity 桌面环境 即 Ubuntu 11 04 或 11 10 您需要
  • Struts 2 中的 等效项

    下面是 html 标签 multibox 我想将其迁移到 struts 2
  • Strapi:是否可以跟踪用户修改内容?

    我目前正在对 Strapi 进行一些研究 以便在其上构建我的 API 我想知道是否可以在 JSON 中公开一个字段 该字段包含有关负责对特定内容进行最后修改的用户的信息 我知道 API 默认在 JSON 对象中公开一个 updatedAt
  • matplotlib 轴刻度标签由散点图覆盖(使用脊柱)

    我想让我的轴穿过散点图中的原点 0 0 这就是我在下面的示例中设置脊柱位置的原因 问题是散点图上的实际数据点覆盖了轴刻度标签 因此无法看到它们 如何让 matplotlib 用我的轴刻度标签 覆盖 数据点以便可以看到它们 import nu
  • 使用 PDFBox ETSI 验证进行 Pades 签名

    我使用 PDFBOX 创建了 PDF PAdES 签名 并且正在使用 ETSI 在线验证器1 它需要注册 现在我在报告中只收到两个错误 但我有点不知道它们是什么或如何修复它们 这是 etsi 在线验证器报告 这是我用来签名的代码 Overr
  • 如何使用 Swing 和 JLayer<> 在 Java 中制作模糊的 JFrame/JDialog?

    我正在尝试模糊我的 JFrame 这个想法是使用 JLayer LayerUI 模糊 JFrame 中的所有组件 控件 这是我到目前为止所做的 这是制作模糊效果的 LayerUI 类 import java awt Component im
  • 自 Google Scripts V8 更新以来搜索模式错误

    自从谷歌强制更新后 这个项目正在我们由 Chrome V8 提供支持的新 Apps 脚本运行时上运行 我收到以下错误 但我不明白为什么 异常 无效参数 recreateReferral 处的 searchPattern recreateRe
  • 将用户区域设置包含到 Keycloak ID 令牌中

    我希望 Keycloak 1 4 0 将用户选择的区域设置包含到 ID 令牌中 我已经创建了一个用户属性映射器 它应该将区域设置属性映射到令牌 但它不起作用 有人知道怎么做这个吗 提前致谢 编辑 我从这堂课中学到了关于 Keycloak L
  • MVC 验证消息 - 本地化?

    我有个问题 主服务器和本地主机上的文件完全相同 但在本地主机中 我有我的母语的消息 例如 Pole Email jest wymagane 在主服务器上我有 The Email field is required 正如我所说 文件是完全相同
  • QML 渲染引擎:帧刷新事件

    性能考虑因素和建议文章说 作为应用程序开发人员 您必须努力让渲染 引擎实现一致的每秒 60 帧的刷新率 60 FPS 意味着每个帧之间大约有 16 毫秒 可以在其中进行处理的框架 其中包括处理 将绘制基元上传到图形硬件所需的 是否有事件或信
  • 法语翻译引发“ValueError('复数形式的无效标记:%s'%值)”

    我想处理我的网站的法语版本 我将 Django 2 2 与 i18n 一起使用 并且我已经在 settings py 中设置了语言环境变量 Internationalization https docs djangoproject com
  • 使用身份验证 cookie 打开 WebSocket 连接

    我有同样的问题Android 中的 Websocket 和 cookie 我一直在尝试按照第一条评论的建议解决这个问题 WebSocketClient URI serverUri 草稿协议Draft 映射httpHeaders int co
  • 在 Java 中打印 BufferedImage 的正确方法

    我想知道是否有正确的方法来打印BufferedImage在爪哇 基本上我已经创建了一个运行良好的照片处理程序 我可以保存图像等 但我真正的目标是将其发送到打印机软件 以便您可以选择要打印的页数和页面类型 所以我的简短问题是 如何将缓冲图像发
  • Object var 和 Object* var = new Object() 之间的区别

    如果我有一个名为 Object 的类 那么创建一个实例有什么区别 Object var and Object var new Object 这里你在堆栈上创建 var Object var 所以在上面的内容中 var是实际的对象 这里您在堆
  • Javascript 在页面上查找文本

    我需要在类似于以下内容的 HTML 上运行搜索和替换 我需要有 查找下一个 替换 和 全部替换 选项 诀窍是我需要运行 AJAX 请求替换值后 更新数据库中每个字段的值 我遇到的唯一麻烦是我不确定如何搜索内容 sheet并将这些值替换为用户
  • 使用 PHP 强制下载文件

    我的服务器上有一个 CSV 文件 如果用户单击链接 它应该下载 但它会在我的浏览器窗口中打开 我的代码如下所示 a href files csv example example csv Click here to download an e
  • 如何触发mapView:didSelectAnnotationView

    我是 iPhone 开发新手 我一直在阅读有关如何使谷歌地图注释标注窗口接受换行符的几个问题 我读过的每个教程都要求我启动mapView didSelectAnnotationView方法 但我不知道如何触发这个 我尝试过的事情包括 将方法
  • JUNG:按顺序放置树节点

    将节点添加到我的DelegateTree 它们在视觉上并不按照我添加它们的顺序出现 我一直在寻找解决方案 但还没有找到任何东西 有谁知道如何改变这个吗 提前致谢 EDIT 我的代码 Generate a visualization of t