gpt4 book ai didi

java - 如何在 GEF 编辑器中实现自定义 FlowLayout?

转载 作者:行者123 更新时间:2023-11-29 08:49:09 29 4
gpt4 key购买 nike

我正在实现一个 GEF 编辑器并面临以下问题。

有两种EditPart:1)GraphEditPart,2)NodeEditPart。我的编辑器扩展了 GraphicalEditor,因为我根本不需要调色板。我将 SimpleRootEditPart 用于 GraphicalViewer

GraphEditPart 有一个 Layer 类型的图形,它是用 FlowLayout 布局的。它的模型子节点是节点,应该按照FlowLayout显示,即一个接一个,节点图形(一个Label)移动时“换行”超出 GraphicalViewer 的可见部分。这通常是水平滚动条出现的地方。为了抑制滚动条,我设置了 layer.setPreferredSize(new Dimension(getViewer().getControl().getSize()))。这工作得很好,所以当我将应用程序窗口调整为更小的尺寸时,编辑器变得更小,并且节点图形执行类似“换行符”的 la FlowLayout。

但是,如果我在图表中有很多节点,我想显示垂直滚动条,因为就像现在一样,节点刚好消失在屏幕底端下方。

所以基本上,我想要实现的行为就像文本编辑器的行为,如果您输入足够的文本,它就会向下滚动(就像 stackoverflow 上的 WYSIWYG 文本编辑器)...

我尝试通过调用 ((FigureCanvas) getViewer()).getControl.setVerticalScrollbarVisibility(FigureCanvas.AUTOMATIC)) 来设置滚动条可见,但无济于事。

最佳答案

我认为问题在于您使用的是 SimpleRootEditPart,它不支持滚动。尝试将其更改为 ScalableRootEditPart 甚至 ScalableFreeformRootEditPart(这就是我正在使用的)。您正在进行的调用会影响包含编辑部分的控件,但由于 GEF 管理它自己的 View ,因此您的调用没有任何效果。

关于java - 如何在 GEF 编辑器中实现自定义 FlowLayout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575378/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com