Java,JavaFX的流畅设计风格拨动开关

嗨,这次我将在新版本的JMetro中讨论新的Toggle Switch样式。

拨动开关是一种近年来变得非常流行的控件。 我前一段时间在ControlsFX库中添加了JavaFX实现。

刚刚发布的JMetro版本4.1中提供了此新样式。

什么是拨动开关

在以前的文章中,我谈到了切换开关控件,它是什么以及我已经完成并添加到ControlsFX库中的实现。

简而言之,拨动开关就像复选框或切换按钮一样,具有两种状态(打开和关闭)。 它通常没有Check Box可以具有的不确定状态,并且在某些实现中,当其状态更改时,其文本可能会更改,以进一步说明其所处的状态。

默认情况下,ControlsFX实现的外观符合默认的JavaFX Modena主题。 那时,我还在JMetro中添加了Metro风格的样式,您可以在下面看到:

拨动开关OLD JMetro灯光样式

拨动开关OLD JMetro灯光样式

拨动开关OLD JMetro深色风格

拨动开关OLD JMetro深色风格

新的拨动开关样式

创建新的JMetro样式时,我遇到了一些问题。 首先,我在外观实现中遇到了一些错误,这些错误是在新添加的MetroToggleSwitchSkin

JMetro样式表已更改为引用此新外观:

.toggle-switch {-fx-skin: "impl.jfxtras.styles.jmetro8.MetroToggleSwitchSkin";
}

这是一个实现细节,因此您通常不必真的在乎。 外观位于impl包中,以反映它不是公共API。 如果在代码中使用它,请注意将来情况可能会发生重大变化。

我遇到的另一个问题是我现在希望切换开关位于左侧,而其文本位于右侧。 这与当前实现相反。 为此,我添加了一个新CSS属性: -toggle-display 。 与Labeled -fx-content-display属性类似。

-toggle-display具有三个可能的值:

  • left :切换开关显示在左侧,附带的文本显示在右侧
  • right :切换显示在右侧
  • thumb-only :仅显示切换开关,不显示任何文本

默认值为right ,它反映了我在Toggle Switch的第一个实现中的外观。 但是,默认情况下,JMetro会覆盖此参数并将其设置为left,

.toggle-switch {-thumb-move-animation-time: 100;-toggle-display: left;
}

另一件事发生了变化,您会在上一个代码片段中注意到切换动画的持续时间。 也就是说,无论开关点处于关闭状态还是打开状态,切换点从左到右移动的时间(反之亦然)。 如-thumb-move-animation-time CSS属性所指示,此时间已从200ms更改为100ms。

事不宜迟,以下是Toggle Switch的新的明暗JMetro样式:

拨动开关NEW JMetro灯光样式

拨动开关NEW JMetro灯光样式

拨动开关NEW JMetro深色风格

拨动开关NEW JMetro深色风格

包起来

JavaFX主题JMetro的 4.1版已经发布。 此版本增加了一个新的切换开关样式,灵感来自Fluent Design 。 视觉效果已经完全改变,包括动画速度。

还添加了一个新皮肤,它添加了一个新的-toggle-display CSS属性。 请注意,此外观位于impl包中,因为它是实现细节。

Java的文档页面JavaFX主题JMetro将很快更新。

和往常一样,在Twitter上关注我并订阅此博客。

这是我下一步计划的:

  • 带有动画的新按钮样式;
  • 新的滑块样式;
  • 新的进度栏样式;
  • 容易改变颜色的可能性。

翻译自: https://www.javacodegeeks.com/2018/08/fluent-design-style-toggle-switch-javafx.html

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

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

相关文章

python解析多层嵌套json_Python爬虫解析多个嵌套JSON,多级,json

Python爬虫解析多级嵌套json最近刚接触Python爬虫,正好最近肺炎在全国蔓延,所以准备从网站爬取肺炎实时数据,并解析自己想要的数据。获取json数据网址为 https://m.look.360.cn/events/feiyan爬取网址:def main():urlhttps://m.lo…

如何使用vps 异地组网_使用ZEROTIER异地组建内网(局域网)

一、注册账号(该网站打开比较慢,但并不影响组网后的网速)二、建立虚拟局域网网(获取Network ID)1.选择菜单栏的Networks菜单2.选择创建网络3.注意获取到的Network ID(需要在每台组网的电脑上加入这个network id)4.大部分设置默认就可以了.三、下载软件点菜单中的Dow…

编写一个watchdog.sh脚本_五大原因!为何要将Jupyter Notebook转换为python脚本?

全文共3360字,预计学习时长9分钟图源:unsplash大多数数据科学在线课程都把Jupyter Notebook作为教学媒介,这是因为初学者在Jupyter Notebook的单元格中编写代码,比编写包含类和函数的脚本更容易。另一个原因在于它使浏览和绘制数据…

java 多线程 总结_Java 多线程总结

昨天熬了个通宵,看了一晚上的视频,把java 的多线程相关技术重新复习了一遍,下面对学习过程中遇到的知识点进行下总结。首先我们先来了解一下进程、线程、并发执行的概念:进程是指:一个内存中运行的应用程序&#xff0c…

基本服务-使用大使网关

这是我对Knative服务进行实验的延续,这次是围绕在Knative服务应用程序之上构建网关。 这是基于我之前的两篇文章- 使用Knative部署Spring Boot App以及在Knative中进行服务到服务的调用 。 为什么在Knative应用程序之上使用网关 为了解释这一点,让我谈谈…

mysql function 表名作为参数_mysql 常用的分组聚合函数

mysql 常用的分组聚合函数1.聚合运算一般情况下,需要的聚合数据(和,平均值,最大,最小等)并不总是存储在表中,但是可以执行存储数据的计算来获取它.根据定义,聚合函数对一组值执行计算并返回单个值.MySQL提供了许多聚合函数,包括AVG,COUNT,SUM,MIN,MAX等.除COUNT函数外,其它聚合…

java加减乘除运算顺序_java 实现加减乘除混合运算

初衷:解决小学一年级到四年级 基本加减乘除混合运算基本思路:表达式:10032-200(10000/5(100/2))此类表达式我们称之为中缀表达式(运算符在数字的中间),如果我们稍加转换,转化为100, 3, , 2, , 200, -, 10000, 5, /, 100, 2, /, , …

java integer valueof_对 Java Integer.valueOf() 的一些了解

从一道选择题开始分析选项A选项A中比较的是i01和i02,Integer i0159这里涉及到自动装箱过程,59是整型常量,经包装使其产生一个引用并存在栈中指向这个整型常量所占的内存,这时i01就是Integer 的引用。而int i0259由于int是基本类型…

java web 伪静态_【Java Web】使用URLRewrite实现网站伪静态

大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp、*.php页面。但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上大部分网站都会考虑伪静态——就是将*.jsp、*.php这种动态URL伪装成静态的HTML页面。…

使用Spring WebFlux从Corda节点流式传输数据

自上次发布以来已经有一段时间了,但我终于回来了! 由于我仍在我的项目中,因此我将再次撰写有关使用Corda的文章。 这次,我们将不再关注Corda,而是将Spring与Corda结合使用。 更具体地说,Spring WebFlux。 为…

mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻

嗯,犯了一个很低级的错误,最近暴露出来了。html背景:mysql1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000(正常状态:100ms)git2. 增长日志打点,在关键步骤插入…

MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入

存储引擎:存储引擎是mysql特有的,共有7种,常用的有myisam、memory、innodb查看表的存储引擎:show create table 表名;修改表的存储引擎:alter table 表名 engine存储引擎名称;1.myisam存储引擎:可转换为压缩…

python土味情话_土味情话表情包下载

喵星人土味情话表情包是一款很甜的表情图片,现在的聊天模式三句话离不开表情包,而且小编带来的这款表情包非常的适合情侣日常撩,最新的土味情话,需要的朋友可以前来本站下载。土味情话大全一、“对不起。”“你永远都不要和我说对…

多云互操作性!=云服务聚合

多云定义为一种方法,它将来自多个云供应商的多个云(公共云或私有云)组合在一起。 但是,这不是来自不同供应商的各种服务的集合,它需要一种强制性的胶合剂–云不可知的方法,并在所有提供商之间实现互操作性。…

如何在Spring中将@RequestParam绑定到对象

您是否在请求映射方法中用RequestParam注释了多个参数,并认为它不可读? 当请求中需要一个或两个输入参数时,注释看起来非常简单,但是当列表变长时,您可能会感到不知所措。 您不能在对象内部使用RequestParam批注&…

webstorm前端调用后端接口_软件测试面试题:怎么去判断一个bug是前端问题还是后端问题...

大家好,在软件测试面试过程中,经常有面试官问到这个问题,那我们应该如何回答才好呢?少废话,直接看答案:答案:在页面上发现bug之后,要想判断这个问题属于后端还是前端,我就…

首次适应算法_CVPR 2020丨?商汤TSD目标检测算法获得Open Images冠军

编者按:此前,在文章《商汤科技57篇论文入选ICCV 2019,13项竞赛夺冠》里,商汤君报道了商汤科技荣获Open Images Object Detection Challenge 2019 冠军。由Google AI主办的Open Images大赛是目前通用物体检测和实例分割两个领域中数…

玩JDK 12的Switch表达式

在博客文章“操作中的JDK语言功能预览:切换表达式 ”中,我讨论了JEP 325 [“切换表达式( 预览 )”)如何作为指定的“ 预览语言功能 ”的早期应用,如JEP 12所述。预览语言和VM功能”]。 JEP 325 适用于JDK 1…

python 验证码_4行Python代码生成图像验证码

点击上方蓝色字体,关注我们最近无意看到网上有人使用Python编写几十行代码生成图像验证码,感觉很是繁琐,这里为各位朋友推荐两种方法,使用4行Python代码即可生成验证码。1captcha库第1步:安装captcha库pip install cap…

python3 多线程_Python3多线程爬虫实例讲解

多线程概述多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率。python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点,在threading 得到了弥补。并且在Python3中废弃了thread…