JavaFx 实现水平滚动文本(跑马灯效果)

这篇具有很好参考价值的文章主要介绍了JavaFx 实现水平滚动文本(跑马灯效果)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文地址: JavaFx 实现水平滚动文本(跑马灯效果) - Stars-One的杂货小窝

本文是以TornadoFx框架进行编写,各位使用JavaFx可以参考

代码已经封装在common-controls库中

效果

JavaFx 实现水平滚动文本(跑马灯效果)

代码

实现原理就是利用了JavaFx里的动画效果去修改scrollpane的translateX属性,原本想在text上改造的,发现文字过多就不行了,最终还是使用了scrollpane组件来完成功能

就是需要注意的是,设置的文本需要处理一下换行符,不然显示效果会很不好看

还有就是,记得文本前面加上几个空格,不然滚动感觉看不了前面的几个字文章来源地址https://www.toymoban.com/news/detail-427124.html

val simpleNotice=SimpleStringProperty("")
scrollpane {
    alignment = Pos.CENTER_LEFT
    prefWidth = 560.0

    style {
        focusColor = Color.TRANSPARENT
        borderWidth += box(0.px)
        borderColor += box(Color.TRANSPARENT)
        hBarPolicy = ScrollPane.ScrollBarPolicy.NEVER
        vBarPolicy = ScrollPane.ScrollBarPolicy.NEVER
        padding = box(0.px)
    }

    hbox {
        translateY = 5.0
        alignment = Pos.CENTER_LEFT

        label(simpleNotice) {
            val defaultValue = translateXProperty().value
            //滚动的逻辑
            val rollAction: ((String) -> Unit) = {
                val newValue = it
                //阅读速度,8个字1s
                val time = newValue.length / 8
                translateXProperty().animate(-(newValue.length * 10), Duration.seconds(time.toDouble()), Interpolator.LINEAR) {
                    cycleCount = -1
                    setOnFinished {
                        translateXProperty().set(defaultValue)
                    }
                }
            }

            simpleNotice.onChange {
                rollAction.invoke(it?:"")
            }
            rollAction.invoke(simpleNotice.value)

            setOnMouseClicked {
                //点击事件

            }
        }
    }
}
simpleNotice.set("      这是一个测试公告信息...")

到了这里,关于JavaFx 实现水平滚动文本(跑马灯效果)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Vue.js实现文字跑马灯效果

    实现文字跑马灯效果,首先用到 substring()截取 和 setInterval计时器 clearInterval()清除计时器 效果如下: 实现代码如下: 以上是实现文字跑马灯效果,如有不足的地方,欢迎在评论区留言。

    2023年04月19日
    浏览(58)
  • 探究前端的跑马灯效果是如何用css实现的

    💖 作者简介:大家好,我是阿牛,全栈领域优质创作者😜 📝 个人主页:馆主阿牛🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 📣 系列专栏:前端实用小demo🍁 💬格言:迄今所有人生都大写着失败,但不妨碍我继续向前!🔥 无意见看到了一个网站的一个动画的跑马灯效果

    2024年04月10日
    浏览(41)
  • Android --- 跑马灯效果

    跑马灯效果主要使用的控件为TextView,其中涉及的几个标签如下所示: android:ellipsize If set, causes words that are longer than the view is wide to be ellipsized instead of broken in the middle. You will often also want to set scrollHorizontally or singleLine as well so that the text as a whole is also constrained to a single line in

    2023年04月08日
    浏览(77)
  • uni小程序 跑马灯效果

    写在前面 前几天帮一个朋友咋小程序上加一个类似于跑马灯的效果,本自己手写了一个。(代码和截图都在下方) 效果展示 等我截图~~~ 代码展示(布局代码) 主要就是图片css哪里加了一个“ flex-shrink: 0; ”,因为只是本地的一个功能,所以我就图片数据就写死了,需要的自

    2024年02月12日
    浏览(40)
  • 前端Vue自定义精美上下滚动通告栏组件 常用于展示公告信息 上下滚动跑马灯 上下滚动广播

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月09日
    浏览(72)
  • 应广单片机实现跑马灯

            应广单片机处处体现其mini的特性,非常适合做各种方案开发,特别是点灯,什么跑马灯,氛围灯,遥控灯,感应灯,拍拍灯等,用应广都OK。        跑马灯是基础中的基础,我搭了一个框架,要进行扩展或是修改也很容易。不多说,上代码。 #include    \\\"extern.h\\\"

    2024年02月09日
    浏览(40)
  • 应广单片机跑马灯实现--阻塞式编程模式

           我这边再写了一个跑马灯程序,使用阻塞式编程模式,看起来会更简单直观。对于初学者来说,阻塞式编程比较直观好理解。在一些任务单一或是任务不多的程序来说,还是不错的选择。但是建议还是采用任务式/查询式编程,这样使程序会有更好的扩展性能,减少推

    2024年02月09日
    浏览(52)
  • Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播

     程序示例精选 Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播编写代码,代码整洁,规则,易读。 学习与应用推荐首

    2024年02月13日
    浏览(35)
  • 单片机(3)跑马灯,按钮控制的跑马灯(2种编程)

     先上电路图(图示的是高电平点亮的跑马灯)  这个是程序截图(keil5):我的建议是是先自己打一遍,边打边试着理解程序的意思。 下面的是没有注释的代码 下一个是另外一种编程思路  

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包