big星 2023-02-15 17:17 采纳率: 76.9%
浏览 20
已结题

java_mxGraph实现个别cell标签不显示

当使用graph的insertVertex或者其他添加cell的方法时,设置该cell的标签(label)不显示,除了graph的设置全局标签不显示,当我使用cellState中setLabel方法或者setlabelbound方法都可实现不显示标签,但是在添加cell后设置,界面依然会显示,如何解决在添加时就实现不显示标签,这是什么原因引起的

  • 写回答

1条回答 默认 最新

  • zmy1127 2023-02-15 18:33
    关注

    如果您想在添加 cell 时就实现不显示标签,可以在调用 insertVertex 或其他添加 cell 的方法时,通过设置 mxStyle 来实现。具体来说,您可以为 mxStyle 中的 label 属性设置一个空字符串,以实现不显示标签。

    例如,下面的代码演示了如何使用 mxStyle 来设置一个不显示标签的 cell:

    // 创建一个空的mxCell
    mxCell cell = new mxCell();
    
    // 设置mxStyle,将label属性设置为空字符串
    Map<String, Object> style = new HashMap<String, Object>();
    style.put(mxConstants.STYLE_LABEL, "");
    cell.setStyle(mxUtils.setStyle(null, style));
    
    // 将cell插入到graph中
    graph.getModel().beginUpdate();
    try {
        graph.addCell(cell);
    } finally {
        graph.getModel().endUpdate();
    }
    
    
    

    另外,当您使用 mxCellState.setLabel 或 mxCellState.setLabelBounds 方法来设置 cell 标签时,可能无法立即生效,因为 mxCellState 中的属性是用于绘制图形的,而不是用于更改 cell 数据的。如果您想立即更新 cell 的标签,可以使用 mxGraph.refresh 方法来强制刷新绘图。例如:

    mxCell cell = new mxCell("My Label");
    graph.getModel().beginUpdate();
    try {
        graph.addCell(cell);
    } finally {
        graph.getModel().endUpdate();
    }
    
    // 将cell的标签设置为空字符串
    cell.setValue("");
    mxCellState state = graph.getView().getState(cell);
    if (state != null) {
        // 强制刷新绘图,以更新cell的标签
        graph.refresh();
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测