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