iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JavaFx实现按钮防抖功能
  • 231
分享到

JavaFx实现按钮防抖功能

2024-04-02 19:04:59 231人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录JavaFX实现原理实现代码Kotlin版:Kotlin优化版Java版JavaFX JavaFX 是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式

JavaFX

JavaFX 是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公司的共同努力的成果,目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。

javafx中文网站

Android平台的APP,一般是有需要进行设置按钮的防抖(即在短时间内无法多次点击),我想在JavaFx项目中也是实现防抖功能,便是研究了下

实现原理

点击按钮前,需要记录当前点击的时间,在按钮下一次点击的时候,与之前记录的点击时间进行计算,判断两者的间隔时间是否大于设定的条件值

这里思路没有是嘛难度,主要是点击时间的历史记录该如何记录?有以下几种方法

  • 使用Map存储(按钮过多占用资源较大)
  • 使用控件对象提供的某个无用字段进行存储

在Android中,可以使用View中的tag来保存信息

而在JavaFx中,所有的控件都有userData的字段,有了这个,我们即可去存储时间

实现代码

Kotlin版:

kotlin版我是使用了扩展方法,对BUtton类进行了扩展,不太明白扩展方法的可以查下资料,简单来说即是给Button类新增了个方法

//注意Button是javafx包的
fun Button.isFastClick(): Boolean {
    val lastClickTime = userData as Long?
    val currentTime = System.currentTimeMillis()

    userData = currentTime
    //这里我设置为1s内多次点击无效,可以根据需要调整
    if (lastClickTime != null && currentTime - lastClickTime <= 1000) {
        return true
    }
    return false
}

使用:

button{
    action {
        //不是快速点击才进入点击逻辑
        if (!isFastClick()) {
            println("hello")
        }
    }
}

Kotlin优化版

稍微重新封装了下,使用更加优雅


fun Button.isFastClick(time:Long): Boolean {
    val lastClickTime = userData as Long?
    val currentTime = System.currentTimeMillis()

    userData = currentTime
    if (lastClickTime != null && currentTime - lastClickTime <= time) {
        return true
    }
    return false
}


fun Button.setActionHank(time:Long = 1000,op: () -> Unit) {
    action {
        if (!isFastClick(time)) {
            op()
        }
    }
}

使用:

button("测试") {
    //这里不用action了
    setActionHank{
        println("111")
    }
}

PS:后续会收录到common-controls的库中

Java版

class ButtonUtils {
    public static boolean isFastClick(Button button) {
        Object userData = button.getUserData();

        long currentTime = System.currentTimeMillis();
        button.setUserData(currentTime);
        if (userData instanceof Long) {
            Long lastClickTime = (Long) userData;
            return currentTime - lastClickTime <= 1000;
        }
        return false;
    }
}

测试效果

到此这篇关于JavaFx 实现按钮防抖功能的文章就介绍到这了,更多相关JavaFx 按钮防抖内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaFx实现按钮防抖功能

本文链接: https://www.lsjlt.com/news/163345.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaFx实现按钮防抖功能
    目录JavaFX实现原理实现代码Kotlin版:Kotlin优化版Java版JavaFX JavaFX 是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式...
    99+
    2024-04-02
  • JavaFx如何实现按钮防抖功能
    这篇文章主要介绍了JavaFx如何实现按钮防抖功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaFXJavaFX 是一个开源的下一代客户端应用平台,适用于基于Java...
    99+
    2023-06-28
  • vue项目中实现按钮防抖方法
    目录1.新建 .js文件存放防抖方法2.引入防抖文件,methods中添加方法3.html代码1.新建 .js文件存放防抖方法 // 防抖 export const antiShak...
    99+
    2022-12-14
    vue 按钮防抖 vue实现防抖
  • vue实现按钮的长按功能
    先给大家介绍下vue实现按钮的长按功能,效果图如下: 实现效果图:   实现思路: 给需要操作的 dom 元素添加touchstart(点击开始)、touchend(点击...
    99+
    2024-04-02
  • vue3中怎么自定义指令实现按钮防抖
    这篇“vue3中怎么自定义指令实现按钮防抖”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3中怎么自定义指令实现按钮防抖...
    99+
    2023-07-05
  • CSS3怎么实现按钮功能
    这篇文章主要讲解了“CSS3怎么实现按钮功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS3怎么实现按钮功能”吧!今天我又看到一个很好看的按钮。设计师...
    99+
    2024-04-02
  • vue3自定义指令实现按钮防抖示例详解
    目录写在前面自定义指令实现按钮防抖实现思路代码实现总结写在前面 在实际项目开发过程中,对于按钮的提交事件来说,我们需要限制按钮重复点击,避免在某个时间内重复提交。这时候我们一般用到...
    99+
    2023-02-27
    vue3自定义指令按钮防抖 vue 按钮防抖
  • vue怎么实现按钮的长按功能
    这篇文章主要介绍“vue怎么实现按钮的长按功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现按钮的长按功能”文章能帮助大家解决问题。效果图如下:实现效果图:实现思路:给需要操作的 do...
    99+
    2023-06-29
  • JS如何实现按钮闪烁功能
    这篇文章主要为大家展示了“JS如何实现按钮闪烁功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何实现按钮闪烁功能”这篇文章吧。html<body&...
    99+
    2024-04-02
  • Android kotlin使用注解实现防按钮连点功能的示例
    SingleClick: @Retention(AnnotationRetention.RUNTIME) @Target(AnnotationTarget.FUNCTION) a...
    99+
    2024-04-02
  • CSS怎么实现遥控器按钮功能
    本篇内容主要讲解“CSS怎么实现遥控器按钮功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS怎么实现遥控器按钮功能”吧!html结构<view class="bu...
    99+
    2023-07-04
  • 怎么用CSS3实现返回功能按钮
    本篇内容介绍了“怎么用CSS3实现返回功能按钮”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在过去的年代,...
    99+
    2024-04-02
  • 如何实现amazeui验证按钮扩展功能
    这篇文章将为大家详细讲解有关如何实现amazeui验证按钮扩展功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。做一个发送验证码按钮,点击后要60秒之后才能再次点击,利用原有的amazeui样式做的一些扩...
    99+
    2023-06-09
  • CSS3 如何实现按钮边框动画功能
    本篇内容介绍了“CSS3 如何实现按钮边框动画功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先看效果:html<a hr...
    99+
    2023-06-08
  • Bootstrap中Table如何实现加载按钮功能
    小编给大家分享一下Bootstrap中Table如何实现加载按钮功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 ...
    99+
    2024-04-02
  • ElementUI实现el-form表单重置功能按钮
    目录业务场景:效果演示:业务场景: 使用el-form时,点击重置按钮或者取消按钮时会实现表单重置效果。 重置功能按钮功能实现详细步骤: 第一:首先给el-form添加ref属性。 ...
    99+
    2024-04-02
  • Android编程如何实现带有单选按钮和复选按钮的dialog功能
    这篇文章将为大家详细讲解有关Android编程如何实现带有单选按钮和复选按钮的dialog功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:带有单选按钮的dialog:package ...
    99+
    2023-05-30
    android dialog
  • 如何在 PHP 中实现防抖和防重复提交的功能
    在Web开发中,防抖和防重复提交是两个常见的问题。防抖用于处理频繁触发的事件,防止过度请求;而防重复提交则是为了避免用户多次提交相同的表单。本文将介绍如何在PHP中实现这两个功能,并提供具体的代码示例。一、防抖功能实现防抖功能主要是在一定的...
    99+
    2023-10-21
    防抖:Debounce 防重复提交:Prevent duplicate submissions PHP 实现:PHP i
  • android怎么实现点击按钮跳转界面功能
    在Android中,可以通过以下方式实现点击按钮跳转界面的功能:1. 在布局文件中添加一个按钮控件,例如:```xml```2. 在...
    99+
    2023-08-08
    android
  • Vue3指令之搜索框输入防抖功能实现
    目录前言防抖 & 节流防抖节流输入防抖存在的问题指令实现总结前言 「搜索」这个场景在各种业务的系统中都是是非常常见的,比如电商平台的商品搜索、百度搜索、掘金搜索、google...
    99+
    2022-12-29
    vue输入防抖动 vue中使用防抖 Vue3搜索框输入防抖
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作