关于图形拖出Editor的左侧或上侧边界的时候不自动出现滚动条的问题。

本文介绍了解决在使用图形编辑器时,图形超出边界但滚动条未自动出现的问题。通过对比示例代码,发现了关键设置:使用FreeformLayout布局,并设置ScalableFreeformRootEditPart作为根编辑部件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题现象
当拖动一个图形出Editor的左侧或者上侧边界的时候,会拖出边界,但是并没有出现滚动条,这样再想看图形的全貌就必须再把图形拖进来。

这个问题很早就遇到了过了,当时没有注意,随便查了下资料,也没搞懂,反正不是什么大毛病,就没在管它了。
最近又看到了这个问题,于是仔细看了下代码,和GEF例子里的代码比较了一下,发现少了下面的语句:
protectedvoidconfigureGraphicalViewer()...{
super.configureGraphicalViewer();

viewer
=this.getGraphicalViewer();
viewer.setEditPartFactory(
newDBPartFactory());
//下面这句用于实现在向左,上拖动模型出Editor边界的时候,自动出现滚动条。同时需要保证Contentsmodel的figure用的是FreefromLayout。同时,Figure还有一定的要求,目前已知freeformLayer可以,Layer不可以 。
viewer.setRootEditPart(newScalableFreeformRootEditPart());//少的就是这句了

}

还要注意ContentsModel对应的Figure的LayoutManager,必须是这个Freeformlayout,不然的话,当把图形脱出边界的时候会出现像死循环一样的情况,就是滚动条一直在自动滚动,一直到程序死掉。

就这样了,大家遇到相同的情况可以参考下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值