eclipse clean_Clean Sheet – Windows 10的人体工程学Eclipse主题

eclipse clean

Clean Sheet是适用于Windows 10的符合人体工程学的Eclipse主题。它基于干净,低眩光的外观和感觉,旨在减轻视觉疲劳和眼睛疲劳。 它融合了均衡的颜色选择,可以突出谐波语法并注重可读性。 除自定义滚动条外,它还努力满足现代美学要求。

这篇文章解释了该功能背后的想法,阐述了其当前的开发状态,并对未来的增强功能进行了展望。

为什么要使用另一个Eclipse主题?

在最近的过去,在使用计算机时,我经历了不止一次的严重,偏头痛样的头痛。 除了咨询眼科医生,这还促使我从人体工程学的角度重新考虑工作场所的配置。 我仔细检查了照明,坐姿,屏幕对比度和亮度,尤其是正在使用的软件,以减少不必要的负担。

作为Java开发人员,我可能最常使用的程序是Eclipse。 结合我认为可用的Eclipse主题与Microsoft的最新主题并不能很好地匹配,我认为有理由在充分考虑人体工程学原理的情况下创建一个新主题。 这就是我开始这个实验的方式。

下一节将概述导致初始版本的关键注意事项和实施策略。 由于我通常容易出错,所以我认为最好尽早发布该项目。 这样,其他人就可以同时受益并帮助纠正问题和误解。

符合人体工程学的清洁床单

当我想到创建符合人体工程学的Eclipse主题的想法时,我想知道从哪里开始。 作为开发人员,我问自己:Java IDE的外观应强调哪些最重要的活动? 我记得鲍勃叔叔曾声称程序员花费大量时间阅读代码:

阅读(代码)与写作所花费的时间比例远远超过10:1…
罗伯特·C·马丁,清洁法规

因此,应该优化工作台的外观以实现最佳的阅读体验,这是很自然的。 因此,回顾Windows 10内置主题的外观有些古怪,我将我的初步考虑重点放在了颜色对可读性的影响上。

灰色阴影

事实证明,由于颜色具有强烈的注意力转向效果,因此应谨慎使用它们。 太多不同的阴影会导致整体图像不舒服,并导致无效的眼部固定[WAND93]。 因此,Shneiderman [SHPH04]建议首先开发屏幕的单色图形设计,以明确单元之间的逻辑关系或其他相关关系表示。

这看起来是一种合理的方法,但是还有另一个方面需要考虑。 鉴于“深色” Eclipse主题的流行,似乎很重要的一点是,要就人机工程学阐明首选的文本对比模式。

白底黑字还是白底黑字?

假设已经按照人体工程学的建议适当调整了照明良好的工作场所,那么长期以来,通常的建议是使用黑白相间的颜色。 对这个主题进行了一些研究,最终说服了我也朝着类似的方向前进。 让我简要地解释一下此决定的一些理由,首先引用基于80年代行之有效的出版物的报价:

“但是,大多数研究表明,浅色背景上的深色字符优于深色背景上的浅色字符(刷新率相当高时)。 例如,鲍尔(Bauer)和卡沃尼乌斯(Cavonius)(1980)发现,参与者在浅色背景上用深色字符阅读文本时,阅读文本的准确性提高了26%。” [GRAVIG]

同时,似乎可以确定的是,通过“消色差”对比度可以实现最佳的可读性,同时又要尽可能地节省眼睛。 这些是浅灰色背景(尽管看起来几乎是白色,但要避免强烈的闪烁)与黑色或非常暗的字体颜色的组合[HOLL07]。 霍尔提到测试系列,测试系列表明纯黑色,深灰色或例如深绿色最适合于文本,符号,线条和类似的前景主题。

黑与白vs黑与白

自己决定,什么可以减轻您的视线。 上方图片的上方或下方? 诚然,这不是一个完全公平的比较,正弦曲线的下部放在明亮的背景上。 仅看这种对比是调节眼睛的辛苦工作。 但是,这表明必须全面考虑人体工程学。 在黑暗环境中使用明亮的屏幕也不是一个好选择。

简·简的问题

由于先前的考虑,“清洁工作表”以浅灰色作为工作台窗口开始,零件背景以黑色字体开头。 使用灰色代替纯白色可以减少“文本模糊”的趋势和背景眩光的影响。 诸如零件,零件堆栈,工具栏,装饰条等结构化元素的强调也基于良好的灰色阴影。

但是,虽然黑色或多或少是浅灰色非常适合阅读纯文本,但是像Amazon Kindle或Evernote的Clearly这样的阅读器的默认设置建议,使用代码有点不同。 代码更加结构化,开发人员希望一眼就能认出这种结构。

为了简化识别过程,文本编辑器支持突出显示特殊文本元素,例如关键字,字段声明,字符串常量等。 当然,可以使用更多的灰色阴影来产生加亮效果,但是我的相应实验并没有令人满意。

如果您正在寻找一种为Eclipse创建自己的语法突出显示颜色主题的方法,则可以查看Eclipse Color Themes 。 他们提供了用于主题创建的在线服务,以及一个Eclipse插件来安装和切换此服务提供的主题。 与编写您自己的主题扩展程序或类似内容相比,入门起来要舒适得多。

一方面,拥有所有这些灰色的细微差别并没有真正导致可感知的结构化。 另一方面,工作台的总体印象有点无聊,会引起睡眠。 因此,我觉得是时候发挥一点色彩了。

介绍彩色斑点

在使基本文本元素保持黑色的同时,我开始探索色轮,以寻找一种语法突出显示调色板,该调色板可以同时用作结构化基础和情绪增强工具。 关于色彩心理学,例如,我选择了一种刺激性的颜色:关键字,事实性的字段,文字等,以及舒缓的Java doc部分。

总之,重要的是找到一种谐波方案,该方案应与工作台的图像元素等的预设很好地融合在一起,但要尽可能避免分散注意力。 下图是我的真实设置的屏幕截图,显示了我最终想到的结果(单击图像放大)。

清洁纸屏幕截图

好吧,她不是美女吗? :)

合并平面滚动条

细心的观察者肯定已经认识到包浏览器和文本编辑器使用的不同滚动条样式。 Clean Sheet使用了我几个月前在我的文章Sacrilege中介绍的自定义SWT滚动条组件-自定义SWT滚动条 。 创建此组件的原因是,本机SWT滚动条在更细微的视图布局上经常看起来有点混乱。

我每天都使用FlatScrollbar实例,对它们如此着迷,以至于我开始探索调整现有SWT应用程序控件的可能性。 尽管有用于树和表的ScrollableAdapter ,但是存在一些技术障碍 ,无法将其用作简单的样式替换。

egit-history-flat-scrollbar

但是,SWT的样式功能可以打开一扇门,允许钩住平面滚动条覆盖适配器。 然而,这种方法开始了实验性的,我没想到它是成功归因于“创意编程解决方案”它所需的量1 。 但是,在我自己吃了几个月的狗食并且解决了大多数问题之后,它似乎出乎意料地很好-至少对于我所知道的Java IDE范围内的UI部分而言。

对于Windows 7和Windows Dark主题的支持者 , “仿射代码主题”功能提供了两种扩展,它们将Xiliary FlatScrollBar组件合并到树和表上。

Windows主题与FlatScrollbar

窗切

带有FlatScrollbar的深色主题

暗切的

外表

Clean Sheet尚未经过Eclipse Java IDE的测试。 因此,如果更广泛的工作台设置带来了意想不到的困难,我不会感到惊讶。 基于Eclipse Forms Toolkit的零件看起来有点像外来元素,但是在我看来,这并没有多大变化(让我感到羞耻)……如果样式对您不利,则不会造成任何伤害。 只需切换回您的首选主题,重新启动工作台,然后继续您的工作即可。

我希望在不久的将来解决Xiliary问题跟踪器中记录的其余错误,并根据日常工作经验和不断增长的知识进行一些细微调整。

从长远来看,如果这个概念证明自己有用,我计划使用StyledText(所有文本编辑器所基于的控件)来将可滚动适配器机制扩展到更多SWT组件。 因此,请继续关注,这将是令人兴奋的:)

乍看上去

关于无尘纸…

要求

JRE 8,Windows 10,Eclipse 4.5(Mars)及更高版本。

下载及安装

将“安装”图标拖放到正在运行的Eclipse工作台中,以安装“代码仿射主题”功能。

btn安装

要么

选择帮助>安装新软件...
P2存储库软件站点@ http://fappel.github.io/xiliary/
功能:仿射代码主题

功能部件安装和工作台重新启动后,选择“清洁表”主题:首选项:常规>外观>主题:清洁表

执照

根据Eclipse Public License版本1.0发布 。

主页

  • http://fappel.github.io/xiliary/clean-sheet.html

资源资源

  • [GRAVIG]:Bauer,D.和Cavonius,C.,R.(1980)。 通过对比度反转提高视觉显示单元的清晰度。 在E. Grandjean,E。Vigliani(编辑)的“视觉显示终端的人体工程学方面”(第137-142页)。 伦敦:泰勒和弗朗西斯
  • [HOLL07]:Friedrich Holl,Fachhochschule Brandenburg, 软件方向:Farbe auf dem Bildschirm
  • [SHPL04]:Shneiderman,Plaisant:设计用户界面。 有效的人机交互策略。 艾迪生-韦斯利,2004年
  • [WAND93]:Jens Wandmacher, 软件人机工程学 ,格鲁伊特,1993年
  1. 老实说,有很多“孩子不在家做”的骇客才能达到目的。 但是没有胆量,没有荣耀……

翻译自: https://www.javacodegeeks.com/2015/11/clean-sheet-an-ergonomic-eclipse-theme-for-windows-10.html

eclipse clean

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么时候需要使用cqrs_在CQRS读取模型中使用Hibernate进行快速开发

什么时候需要使用cqrs在本文中,我将分享一些在CQRS读取模型中使用Hibernate工具进行快速开发的技巧。 为什么要Hibernate? Hibernate非常流行。 从外观上看,它也很容易,而从内部看,它却相当复杂。 它可以很容易地上手…

java面试题三_最全的java面试题目三

78、什么情况下调用doGet()和doPost()?答:Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。79、servlet的生命周期答:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行…

python的内存管理机制及调优手段_Python的内存管理机制及调优手段

内存管理机制:引用计数、垃圾回收、内存池引用计数:引用计数是一种非常高效的内存管理手段,当一个Python对象引用时其引用计数加一,当其不再被一个变量引用时则减一。当引用计数等于0时对象被删除。1.引用计数:引用计数…

tcga癌症亚型获取_亚型多态性应用于元组的危险

tcga癌症亚型获取Java 8具有lambda和stream&#xff0c;但是没有元组&#xff0c;这真是令人遗憾 。 这就是为什么我们在jOOλ中实现了元组-Java 8的缺失部分 。 元组确实是无聊的值类型容器。 本质上&#xff0c;它们只是这些类型的枚举&#xff1a; public class Tuple2<…

java 隐藏了什么_JAVA程序中封装与隐藏是什么意思

qq_遁去的一_1隐藏就是封装吧。。。。封装是把过程和数据包围起来&#xff0c;对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念&#xff0c;即现实世界可以被描绘成一系列完全自治、封装的对象&#xff0c;这些对象通过一个受保护的接口访问其他对象。封装是一…

esb 和 开源esb_如果今天完成,ESB会是什么样子?

esb 和 开源esbJavaOne 2015即将结束&#xff0c;这又是一次很棒的社区活动。 我和Rafael进行了两次会议和一次HOL 。 我最喜欢的会议之一实际上是&#xff1a;谈论ESB&#xff0c;如果今天完成的话。 我以为那是过去&#xff1f; 我通常也倾向于这样说。 但是&#xff0c;系统…

log4j2 无日志记录_在Log4j2中更好地执行非日志记录器调用

log4j2 无日志记录使用Log4j 1.x并希望避免在某些情况下可能会造成额外的性能影响&#xff08;即使实际上未记录该消息&#xff09;时&#xff0c;通常使用日志记录防护 。 Java的简单日志记录外观 &#xff08; SLF4J &#xff09;带给Java日志记录的最吸引人的功能之一是能够…

JAVA8如何进行IDEA配置_IntelliJ Idea 配置jdk8

环境&#xff1a; 环境变量JAVA_HOME配置jdk1.8idea配置支持lambda&#xff1a;File -> Project Structure -> Modules -> Language level, 选择: 8-Lambdas, type annotations etc.File -> Project Structure -> Project -> Project language level, 选择…

spring 占位符默认值_Spring中的值注释中的占位符支持

spring 占位符默认值Value批注中的${...}占位符用于访问在PropertySource注册的属性。 这对于Spring应用程序中的Configuration bean非常有用&#xff0c;但不仅如此。 为确保这是可能的&#xff0c; PropertySourcesPlaceholderConfigurer必须存在于所有需要占位符解析的应用程…

java用户名检查数据库_登入界面账号密码是访问数据库,但登入问题时if判断时就是执行不了...

回复 2楼 林月儿我按着你的方法试了下&#xff0c;可还是这个判断不能执行 if(password.equals(drmm.getText())){view.setText("登入成功");完整代码如下&#xff1a;import java.awt.*;import java.awt.event.*;import *;import *;import java.…

五皇后问题 java_Java的5个古怪问题

五皇后问题 java我们有机会接触到一些最奇怪的Java难题 即使是最有经验的Java开发人员&#xff0c;也会在这篇文章中发现令人困惑的问题。 或者至少是有趣的&#xff08;绝对不公平&#xff09;。 在经历了Java Deathmatch冒险之后&#xff0c;我们决定这次发布一系列不同的问…

java加密成固定长度_Java使用MD5加密,生成的密文长度只有31位

在使用MD5加密时&#xff0c;生成的密文长度只有31位&#xff0c;该怎么解决&#xff1f;代码如下&#xff1a;public static String toMd5(String str) {String re null;byte encrypt[];try {byte[] tem str.getBytes();MessageDigest md5 MessageDigest.getInstance("…

可以自定义模板的ide_将IDE检查应用于自定义Java批注

可以自定义模板的ideJ2SE 5中注释的引入改变了我们编写和处理Java的方式。 除了Java SE的预定义注释外 &#xff0c;框架&#xff0c;IDE和工具包还引入了自己的自定义注释 。 Checker框架提供了一些示例&#xff0c;说明如何使用自定义批注在Java中增加类型安全性 。 在本文中…

java设置弹出框为模态_点击按钮弹出模态框的一系列操作代码实例

实现功能提交按钮功能&#xff1a;点击提交按钮的时候都会弹出模态框&#xff0c;但是有不同的状态&#xff1a;审核状态未通过&#xff1a;弹出未通过理由的input输入框&#xff0c;模态框中除了取消和确定按钮&#xff0c;新增确定并保存医院的按钮审核状态已通过&#xff1a…

spock框架_Spock VW:编写自定义的Spock框架扩展

spock框架Spock框架具有多个内置扩展 &#xff0c;这些扩展支持许多核心功能&#xff0c;例如Ignore和Timeout批注。 但更重要的是&#xff0c;鼓励开发人员编写自己的扩展。 例如&#xff0c; SpringExtension很好地将Spock与Spring框架集成在一起。 编写自定义扩展没有很好的…

java log 断点_项目中常见的log日志调用

第一种用法&#xff1a;引用org.apache.commons.logging.Log。import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;private static final Log logger LogFactory.getLog(PolicyAppBizAction.class); //PolicyAppBizAction.class是自己定义…

侦听127.0.01_Spring 4.2中由注释驱动的事件侦听器

侦听127.0.01介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分&#xff0c;幸运的是&#xff0c;Spring为瞬态事件&#xff08;*&#xff09;提供了完整的基础结构。 最近对事务绑定事件的重构为我提供了一个借口&#xff0c;以在实践中检查Spring 4.2中引入的新的…

java中bpmn流程图_Java学习之BPMN知识以及Activiti的流程部署

BPMN的介绍Activiti项目是一项新的基于Apache许可的开源BPM平台&#xff0c;从基础开始构建&#xff0c;旨在提供支持新的BPMN 2.0标准&#xff0c;包括支持对象管理组(OMG)&#xff0c;面对新技术的机遇&#xff0c;诸如互操作性和云架构&#xff0c;提供技术实现。那什么是BP…

javaone_JavaOne 2015 –第二十版十大收获

javaone我们刚刚在旧金山有了JavaOne的第二十版。 这将是我自2004年以来第十二次参加不间断的系列活动。最大的教训是什么&#xff0c;可以揭示Java的未来。 模块化斗争 自从Java 2007首次提到模块以来&#xff0c;已经花费了将近9年的时间&#xff0c;或者说&#xff0c;直到…

java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份

Java项目中调用bat批处理配合使用BCP进行多用户数据的备份一、项目需求最近项目中需要对数据库(Sql Server系列数据库)进行备份。项目中的需求不是简单的整个数据库的备份&#xff0c;而是根据用户来备份&#xff0c;具体的备份策略如下&#xff1a;①系统为某一赛事管理类型的…