java - 设置 TreeViewer 滚动条的样式

标签 java swt jface draw2d treeviewer

我有一个编辑器,它同时具有draw2d树和Nebula的GridTreeViewer(基本上是一个JFace TreeViewer)。我需要的是工作,除了滚动条。在draw2d中,我获得由org.eclipse.draw2d.ScrollPane提供的滚动条,在GridTreeViewer中,我从JFace获得滚动条。我不知道为什么,但滚动条看起来不同,我希望它们看起来相同,因为如果我没有记错的话,它们正在调用操作系统的 native 控件?滚动条看起来不同是否有原因,是否有办法“降级”JFace 的滚动条以使其看起来像draw2d 的滚动条?也许ScrollPane的滚动条设置有误?

这是屏幕截图,这是在 Ubuntu 13.04 上:

enter image description here

最佳答案

你这边没有错误。最左边的树有一个自定义绘制的滚动条(我假设那是 Draw2d 树),最右边的树显示 native 滚动条(我猜这些是您称为“JFace”的滚动条)。您可以注意到 Eclipse 之外的大多数应用程序都显示滚动条,如“JFace”滚动条。也就是说,如果 Ubuntu 覆盖滚动条已启用。

对此没有简单的解决办法。恕我直言,您可以尝试进入 Draw2d 源并尝试禁用它们的自定义绘制并将其替换为 native 源(来自 SWT)。或者您可以在 Nebula 控件上使用自定义树...

请注意,“JFace”工具栏在 Mac OS X 或 Windows 上看起来会截然不同,并且具有不同的大小等。用户会期待它们:)

关于java - 设置 TreeViewer 滚动条的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673520/

相关文章:

java - togglz-console 包含在 Weblogic 12.2.1.0 上运行的 Java EE7 应用程序中

java - 为什么我的 SWT Shell 总是在后台出现?

java - 使用 Java 在 Windows 和 OS X 上保存程序配置文件的最佳位置?

java - 如何在过滤文本字段时刷新组合?

java - Nebula gridTableViewer 单元格内容应该换行

java - 如何在我的通知上获取手势

Java 算法 : Segregate Odd Even Numbers (time-space complexity)

java - SWT Combo 和 CCombo 作为 CellEditor

java - 如何等待 sendBroadcast 完成

java - 如何允许使用 Java 或 SWT 将文件拖放到 Windows 7 任务栏图标上?