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

本文介绍了解决图形编辑器中图形拖动出边界但未自动显示滚动条的问题。通过对比GEF例程,发现缺少`ScalableFreeformRootEditPart`设置。文章还强调了使用`Freeformlayout`作为`ContentsModel`对应的`Figure`的`LayoutManager`的重要性。

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

问题现象
当拖动一个图形出Editor的左侧或者上侧边界的时候,会拖出边界,但是并没有出现滚动条,这样再想看图形的全貌就必须再把图形拖进来。
 
这个问题很早就遇到了过了,当时没有注意,随便查了下资料,也没搞懂,反正不是什么大毛病,就没在管它了。
最近又看到了这个问题,于是仔细看了下代码,和GEF例子里的代码比较了一下,发现少了下面的语句:
    protected void configureGraphicalViewer() {
        super.configureGraphicalViewer();
        
        viewer 
= this.getGraphicalViewer();
        viewer.setEditPartFactory(
new DBPartFactory());
        
//下面这句用于实现在向左,上拖动模型出Editor边界的时候,自动出现滚动条。同时需要保证Contentsmodel的figure用的是FreefromLayout。同时,Figure还有一定的要求,目前已知freeformLayer可以,Layer不可以 。
        viewer.setRootEditPart(new ScalableFreeformRootEditPart()); //少的就是这句了
        
    }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值