SWT外观:自定义FlatScrollBar颜色等
最近,我引入了一个自定义滑块控件 ,该控件可用于改善SWT外观和更细微的视图布局的感觉。 令人高兴的是,该小部件似乎已经在Code Affine世界之外找到了较早的采用者 。 这导致了一些增强 ,这些增强将在以下各节中介绍。
SWT滚动条外观
SWT是本机OS小部件之上的薄抽象层。 如果您打算将应用程序与OS外观很好地集成在一起,那么这是一件非常好的事情。 但是,作为一种折衷,这种方法大大限制了样式设计功能”(引自Sacrilege,…… )
特别是,我认为本地SWT滚动条经常具有破坏性。 但是,作为本地控件的一部分,它们的SWT外观和感觉根本无法自定义 。 因此,我创建了一个名为FlatScrollBar
的自定义SWT滑块小部件。
由于替换树或表之类的控件的本机SWT滚动条也是不可行的,因此我引入了ScrollableAdapter
,它可以解决带有覆盖层的限制。 到目前为止,我正在开发用于树和表的适配器,以及用于ScrolledComposite
的原型。
颜色...
当涉及到样式时,颜色非常重要。 因此,毫不奇怪,第一个增强要求是关于更改各种滑块元素的颜色的能力。 正因为如此,我介绍了三个属性incrementColor,pageIncrementColor和thumbColor允许apropriate调整:
以下代码段…
FlatScrollBarTable table = [...]
table.setPageIncrementColor( getColor( SWT.COLOR_INFO_BACKGROUND ) );
table.setThumbColor( getColor( SWT.COLOR_WIDGET_LIGHT_SHADOW ) );
…像这样渲染滚动条( getColor
从当前显示中检索系统颜色):
由于Mac OS上的本机滚动条看起来是开箱即用的,因此适配器会从该平台上的自定义叠加层中删除。 仅Gtk和MS Windows平台会受到影响。 但是FlatScrollBar控件本身也可以在OS X上很好地工作。
…和更多
细心的读者可能会奇怪,由于图片仅显示了三个滑块元素,所以增量颜色有什么用。 可以使用crementButtonLength显示增量按钮:
FlatScrollBarTable table = [...]
table.setIncrementButtonLength( 7 );
table.setIncrementColor( getColor( SWT.COLOR_WIDGET_DARK_SHADOW ) );
[...]
整洁,不是吗?
最后一个增强功能与样式无关,但是值得注意。 它将无类型的事件处理添加到FlatScrollBar
。 因此,如果您恰巧使用Java 8,则可以按如下所示处理滚动条选择观察:
FlatScrollBar scrollBar = new FlatScrollBar( parent, SWT.HORIZONTAL );
scrollbar.addListener( SWT.Selection, event -> handleEvent() );
结论
到目前为止,在我们的项目之一中使用FlatScrollBar
和ScrollableAdapter
看起来很有希望。 我很好奇这种方法的可持续性,以及是否有可能也适应文本和/或样式化的文本控件。 这些控件是Xiliary P2存储库的com.codeaffine.eclipse.swt功能的一部分: http ://fappel.github.io/xiliary
如果您想看一下代码或提出问题,也可以看一下Xiliary GitHub项目。 查找FlatScrollbarDemo
, FlatScrollBarTreeDemo
和FlatScrollBarTableDemo
以获取用法示例: https : //github.com/fappel/xiliary
翻译自: https://www.javacodegeeks.com/2015/02/swt-look-and-feel-customize-flatscrollbar-color-and-more.html
SWT外观:自定义FlatScrollBar颜色等相关推荐
- python seaborn boxplot_Seaborn boxplot box从Python列表中分配自定义边缘颜色
我想改变Seaborn boxplot中的框的外观.我希望所有的框都是透明的,并且要从列表中指定框边框.这里是我一起工作的代码:Seaborn boxplot box从Python列表中分配自定义边缘 ...
- R语言使用R原生函数plot和lines可视化线图、并使用lty参数自定义线条类型、lwd自定义设置线条的粗细、col参数自定义线条颜色(Change R base plot line types)
R语言使用R原生函数plot和lines可视化线图.并使用lty参数自定义线条类型.lwd自定义设置线条的粗细.col参数自定义线条颜色(Change R base plot line types) ...
- R语言ggpubr包ggsummarystats函数可视化分组条形图(自定义分组颜色、添加抖动数据点jitter、误差条)并在X轴标签下方添加分组对应的统计值(样本数N、中位数、四分位数的间距iqr)
R语言ggpubr包ggsummarystats函数可视化分组条形图(自定义分组颜色.添加抖动数据点jitter.误差条error bar)并在X轴标签下方添加分组对应的统计值(样本数N.中位数med ...
- R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(自定义分组颜色、主题)实战(dot plot)
R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(自定义分组颜色.主题)实战(dot plot) 目录 R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(自 ...
- Pycharm如何设置自定义背景颜色
Pycharm可以通过设置主题来设定背景颜色,但主题的背景颜色也仅仅局限特定的几种,通过如下的方式可以自定义背景颜色. File--Settings--Editor--General--(右侧上方的框 ...
- python定义字体颜色_windows print 自定义字体颜色【python】
windows print 自定义字体颜色 import ctypes STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE= -11 STD_ERROR_HANDLE = ...
- WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置
WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置 WebStorm是一个捷克公司开发的,功能虽然很强大,但UI貌似一直不是东欧人的强项.WebStorm默认的编辑器颜色搭配不算讲究,我看 ...
- python中rgb颜色_自定义RGB颜色与Python诅咒
我正在用Python编写一个程序,使用标准库中的curses模块.在 我希望我的程序只是退出,如果它不能使用自定义颜色我指定的RGB三元组.在 我有一些入门代码,看起来像:import curses ...
- easyExcel自定义背景颜色easyPoi自定义修改表头背景色
背景:Excel自定义背景颜色,自定义表头背景颜色 注意点:单元格设置背景颜色失效原因/不生效的原因,通常是因为只设置了setFillForegroundColor 参数,这样肯定是不行的,还需要再设 ...
最新文章
- 2009年全国计算机软件考试推荐用书目录
- ​ RROR 1221 (HY000): Incorrect usage of spatial/fulltext/hash index and explicit index orde ​
- 《c语言从入门到精通》看书笔记——第2章 算法
- 谷歌验证 (Google Authenticator) 的实现原理是什么?
- 女子800米跑进4分30秒才合格,茅台回应应聘者需体测...
- 微信朋友圈八月十大谣言:洗澡先洗头会晕倒在浴室
- row_number()over函数的使用(转)
- js layui跳转页面_js中实现页面跳转
- adb官方最新下载链接和常用操作
- Linux的shell脚本教程(一)
- 2020年度软件和信息技术服务竞争力前百家企业名单出炉 —— 旋极信息再次荣登榜单
- 跨境erp系统功能分析
- 关于travis scott的网名_2020微信情侣名字情侣专用 霸气秀恩爱的情侣网名
- 网安必备技能||操作系统中间件安全加固手册(附下载地址)
- dns劫持如何完美修复?dns被劫持如何解决如何完美修复
- C语言简单实现世界协调时UTC与北京时间BJT转换
- python12306抢票_Python 版 12306 抢票神器
- redis数据类型之GEO
- 人脸关键点检测综述(含论文、数据集、方法等)
- Git分支的作用与使用
热门文章
- 2017最新顺口溜出炉(超级经典)!
- JDK,JRE,JVM三者的关系
- JS中遍历数组的两种方式
- oxyen eclipse 启动 报错 se启动提示javaw.exe in your current PATH、No java virtual machine
- linux更改桌面壁纸的脚本,自动更换桌面壁纸的脚本,支持Ubuntu 18.04系统
- 关于二叉堆(优先队列)的其他操作及其应用
- 机器学习java_Java机器学习,第1部分
- java私有属性和私有方法_Java 9中什么是私有的?
- stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案
- jcmd 命令_jcmd:一个可以全部统治的JDK命令行工具