我有一个编辑器,它同时具有draw2d树和Nebula的GridTreeViewer
(基本上是一个JFace TreeViewer
)。我需要的是工作,除了滚动条。在draw2d中,我获得由org.eclipse.draw2d.ScrollPane
提供的滚动条,在GridTreeViewer
中,我从JFace获得滚动条。我不知道为什么,但滚动条看起来不同,我希望它们看起来相同,因为如果我没有记错的话,它们正在调用操作系统的 native 控件?滚动条看起来不同是否有原因,是否有办法“降级”JFace 的滚动条以使其看起来像draw2d 的滚动条?也许ScrollPane的滚动条设置有误?
这是屏幕截图,这是在 Ubuntu 13.04 上:
最佳答案
你这边没有错误。最左边的树有一个自定义绘制的滚动条(我假设那是 Draw2d 树),最右边的树显示 native 滚动条(我猜这些是您称为“JFace”的滚动条)。您可以注意到 Eclipse 之外的大多数应用程序都显示滚动条,如“JFace”滚动条。也就是说,如果 Ubuntu 覆盖滚动条已启用。
对此没有简单的解决办法。恕我直言,您可以尝试进入 Draw2d 源并尝试禁用它们的自定义绘制并将其替换为 native 源(来自 SWT)。或者您可以在 Nebula 控件上使用自定义树...
请注意,“JFace”工具栏在 Mac OS X 或 Windows 上看起来会截然不同,并且具有不同的大小等。用户会期待它们:)
关于java - 设置 TreeViewer 滚动条的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673520/