javafx 教程

按照承诺,刚刚发布的Java JavaFX主题JMetro 4.6版为进度栏带来了新样式。

进度栏有两种可能的状态:确定和不确定,新的JMetro版本具有这两种状态。 在本文中,我还将详细介绍我在JMetro中遵守的一些API设计原则。

JMetro API设计原则

关于JMetro的API,我有一些原则。 其中之一是它应要求最少的设置并具有最少的必需API。 这意味着,例如,仅需很少的方法调用,就可以将JMetro应用为主题。 现在,只需要这两行代码(可以很容易地折叠为一行):

JMetro jMetro = new JMetro(Style.LIGHT);
jMetro.applyTheme(root);

这也意味着我尝试不引入新控件,除非应该绝对引入它们。 例如,使用新的文本字段和密码字段样式,我可以引入新的控件,因为这两个控件都添加了新功能,例如清除和显示密码按钮。 相反,我选择通过引入可以在原始控件中使用的新外观类来添加这些新功能。

这种方法有两个优点:

  • 开发人员可以轻松更改主题。 从JMetro到其他主题,反之亦然。 由于JMetro仅在严格必要时才引入新控件,因此与JMetro没有强耦合。 例如,您可能决定在移动设备上或在不同的OS上使用不同的主题,或者只是您决定不再使用JMetro。 使用JMetro非常简单。
  • 学习曲线浅。 开始使用JMetro应该真的很容易。 至少,您需要知道的是配置和应用JMetro的两行代码。 大多数控件已经在JavaFX SDK中。 在后台将新外观应用于这些控件。

您还可以通过CSS属性来配置大多数控件的新外观,从而使您可以继续使用与以前相同的Java代码(不使用JMetro时)。 将来,我可能会添加新的API以通过代码(例如Java代码)配置这些功能,但我仍然计划保留所需的最少API。

旧的JMetro进度栏

像往常一样,我首先要展示进度条在以前版本中的外观:

ProgressBar旧的JMetro灯光主题

ProgressBar旧的JMetro黑暗主题

这是用于确定状态的简单平面设计样式。 在旧版本中,不确定状态没有样式。

新的JMetro进度栏

在继续显示新的进度栏外观之前,我想解释为什么存在两种可能的状态。 当您可以确定地确定特定任务已取得多少进展时,您将使用确定状态。 在这种状态下,您将显示已完成了多少进度。 进度量由进度栏的“填充”程度决定。 当任务即将完成时,进度栏将被“填满”或几乎“填满”。

相反,当您无法确定已完成的进度或由于某种原因而不想计算进度时,可以将状态设置为不确定。 这不会显示已取得多少进展。 但这至少将表明正在进行一些计算。

受Fluent Design启发,您可以在下面看到进度栏的新样式。 现在,两个新的不同外观代表了这两个状态。 自从我在Twitter上的最后一篇文章以来,我对不确定的动画进行了一些调整。

ProgressBar新的JMetro主题

上面的动画可能看起来不像实时版本那样流畅。 我没有时间发布视频而不是GIF。 那可能会更好地证明实际结果。

深色和浅色版本之间没有区别。

进度栏详细信息

我试图使新进度条CSS样式与原始JavaFX Modena CSS尽可能相似。 您仍然可以找到一个“ track ”和“ bar ” CSS样式类,可以对其进行样式设置,就像在Modena样式表中一样。 对于不确定状态,这是不可能的,因为外观完全不同。

对于不确定状态,每个“点”都是一个具有样式类的Regiondotdot_<number> 。 <Number>是点的位置,从1开始。您可以根据需要设置每个“点”的样式,因为每个点都是一个Region

例如,如果您希望点逐渐变暗,则可以添加以下CSS:

.progress-bar:indeterminate .dot_1 {-fx-background-color: ACCENT_COLOR;
}.progress-bar:indeterminate .dot_2 {-fx-background-color: derive(ACCENT_COLOR, -15%);
}.progress-bar:indeterminate .dot_3 {-fx-background-color: derive(ACCENT_COLOR, -30%);
}.progress-bar:indeterminate .dot_4 {-fx-background-color: derive(ACCENT_COLOR, -45%);
}.progress-bar:indeterminate .dot_5 {-fx-background-color: derive(ACCENT_COLOR, -60%);
}

ACCENT_COLOR是JMetro中定义的JavaFX CSS变量,用于指定JMetro主题的强调色。 derive(..)是一个JavaFX CSS帮助器函数,根据传入的百分比是负数还是正数,它可以使给定的颜色变暗或变亮。

此示例将给出以下结果:

结论

在JMetro 4.6版中,为进度栏添加了新样式。 在这篇文章中,我还概述了JMetro背后的一些设计原则。

像以前一样,您可以在JavaFX主题JMetro页面上查看更新的文档(将很快用这个新版本更新)。

JMetro即将达到5.0版。 我计划在第5版之前添加的所有最困难的控件都已完成。 在接下来的几个发行版中,我计划清理,重新调整某些样式,并增加指定控件的强调颜色的可能性。 在此之前,我可能还可以添加新的控件样式。 Ahh ..并在Maven Central中提供JMetro。

翻译自: https://www.javacodegeeks.com/2018/10/fluent-design-style-progress-bar-javafx.html

javafx 教程

javafx 教程_Java,JavaFX的流畅设计风格进度栏相关推荐

  1. javafx 调用java_Java,JavaFX的流畅设计风格进度栏

    javafx 调用java 按照承诺,刚刚发布的Java JavaFX主题JMetro版本4.6为进度栏带来了新样式. 进度栏有两种可能的状态:确定和不确定,新的JMetro版本针对这两种具有不同的样 ...

  2. Java,JavaFX的流畅设计风格进度栏

    按照承诺,刚刚发布的Java JavaFX主题JMetro 4.6版为进度栏带来了新样式. 进度栏有两种可能的状态:确定和不确定,新的JMetro版本具有这两种状态. 在本文中,我还将详细介绍一些我在 ...

  3. javafx 教程_Java验证(javafx)

    javafx 教程 验证是核心javafx框架所缺少的一件事. 为了填补这一空白, controlsfx中已经存在一个第三方验证库. 但是,我有一个问题:它不是在考虑FXML的情况下创建的. 这并不是 ...

  4. javafx 教程_用JavaFX编写图块引擎

    javafx 教程 随着JavaFX嵌入式版本的问世,我们的框架对于游戏开发变得越来越有趣,因为我们现在可以瞄准平板电脑和智能手机等小型消费类设备. 因此,我决定对JavaFX进行更多的游戏编写实验. ...

  5. javafx按钮设计风格_Java,JavaFX的流畅设计风格按钮,切换按钮和工具提示

    javafx按钮设计风格 你好,我们又见面了! 这个周末,在业余时间,我继续从事JMetro的工作. 最终结果是新的Button和ToggleButton深色和浅色样式. 这些新样式包括按下按钮时的新 ...

  6. javafx 调用java_Java,JavaFX的流畅设计风格拨动开关

    javafx 调用java 嗨,这次我将在新版本的JMetro中讨论新的Toggle Switch样式. 拨动开关是一种近年来非常流行的控件. 我前一段时间在ControlsFX库中添加了JavaFX ...

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

    嗨,这次我将在新版本的JMetro中讨论新的Toggle Switch样式. 拨动开关是一种近年来变得非常流行的控件. 我前一段时间在ControlsFX库中添加了JavaFX实现. 刚刚发布的JMe ...

  8. javafx 教程_示例介绍:JavaFX 8打印

    javafx 教程 我有一段时间没有写博客了,我想与其他人分享有关JavaFX的所有信息(我的日常工作和家庭可能是借口). 对于那些是本博客的新手,我是JavaFX 2 Introduction by ...

  9. JavaFX教程–基础

    JavaFX似乎正在RIA领域获得发展. 有了正确的工具和开发支持,它肯定会在下一个最佳技术"物"上付出巨大的代价. 我没有在这里写任何JavaFX评论,因为有很多技术评论可能对它 ...

最新文章

  1. webpack 占位符_通过示例学习Webpack:占位符图像模糊
  2. 2016 VR年终大趴行业大佬齐聚,共同探讨AR、VR的商业化道路之变
  3. zookeeper平滑升级_zookeeper从3.4.8升级到3.4.14
  4. poj 1584(凸包+点在凸多边形内+圆在凸多边形内)
  5. VTK:Picking之HighlightPickedAct
  6. 简单高效地控制高亮度LED
  7. 唯美动态个人404错误页面html源码
  8. 苹果又想出涨价新招,iPhone 12将标配AirPods耳机?
  9. android log长字符串显示不全,如何解决Android的Log显示不全的问题
  10. mysql卸载报错1606_MySQL5卸载及重装出错问题记录
  11. poi之Excel下载之详细设置
  12. 苹果App Store 四年历程回顾
  13. 恢复被误删的ESP引导分区
  14. 直播改革:关闭10家平台监管3万主播
  15. Perl 最佳实践(节选) --- 12
  16. 【拦截器】和【过滤器】
  17. 股票指标SMA EMA WMA...
  18. 基于ssm+mysql的javaee微博博客系统,Java实现类似新浪微博网站、朋友圈分享系统
  19. 云合智网 面试算法题 两个字符串相乘,例如“12345“ * “54321“,字符串不能直接转换为整型
  20. Kimera: an Open-Source Library for Real-TimeMetric-Semantic Localization and Mapping论文阅读

热门文章

  1. JS 根据出生日期计算岁、月、天;根据岁、月、天计算出生日期。
  2. 编写函数,判断输入的三个数字是否能构成三角形的三条边
  3. c语言指针,return以及函数返回值
  4. dnf服务器未响应,还为卡死而烦恼么 win7游戏无响应方法
  5. Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频
  6. PHP大佬搞笑图,史上最搞笑图片 最好笑的笑话排名第一
  7. Android动画学习之补间动画
  8. canvas画田字格与米字格
  9. Orleans 2.0 官方文档 —— 5.4 集群和客户端 - 异构的silo
  10. 鸿蒙冰心有用么,云顶之弈冰心给谁用比较好 云顶之弈11.6九猩红3冰心派克_游侠网...