当前位置: 首页 > news >正文

javafx-在listview中添加了点击事件后会执行多次

现象

我在一个按钮的点击事件中添加了,点击事件的监听如下,就会造成我多次点击按钮后,里面打开浏览器会执行多次

  listviewitemListener = new ChangeListener() {@Overridepublic void changed(ObservableValue observable, Object oldValue, Object newValue) {int start = 0;String numStr = null;String valuesStr = newValue.toString();String[] strArray = valuesStr.split(":");valuesStr = strArray[1];numStr = valuesStr.substring(0, 8);if (Integer.valueOf(numStr) > 0) {String finalNumStr = numStr;Platform.runLater(new Runnable() {@Overridepublic void run() {String path = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe";String target = "https://xxxx=" + finalNumStr;List<String> cmd = new ArrayList<String>();cmd.add(path);
//                            cmd.add("--start-maximized");// 窗口启动最大化
//                            cmd.add("--incognito");// 隐身模式打开
//                            cmd.add("--user-data-dir=D:/test");cmd.add(target);ProcessBuilder process = new ProcessBuilder(cmd);try {process.start();} catch (IOException e) {e.printStackTrace();}}});}}};infoLV.getSelectionModel().selectedItemProperty().addListener(listviewitemListener);

解决方法

先把listener设置为类的属性,开始设置为null,然后在按钮点击的时候判断不为null的时候remove这个listener就可以了

private ChangeListener listviewitemListener=null;@FXML
void check(ActionEvent event)  {if(listviewitemListener!=null){infoLV.getSelectionModel().selectedItemProperty().removeListener(listviewitemListener);}
}

相关文章:

  • C++ 预处理详解
  • C语言进阶之路-数组与指针
  • 电商项目之Web实时消息推送(附源码)
  • 类和对象——(7)this指针
  • 5G常用简称
  • 初识Linux——基本指令(详解)1
  • Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066
  • shell读取python版本
  • Ubuntu18.04 本地安装CVAT标注工具
  • Python 调用企业微信群机器人发送消息及文件
  • AI助力智慧农业,基于YOLOv5全系列模型【n/s/m/l/x】开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统
  • Linux下的java环境搭建
  • 【无标题】从0到1 搭建一个vue3+Django项目
  • 力扣二叉树--第三十九天
  • 线性表之-栈
  • 深入了解以太坊
  • 收藏网友的 源程序下载网
  • 「面试题」如何实现一个圣杯布局?
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • golang 发送GET和POST示例
  • Java 23种设计模式 之单例模式 7种实现方式
  • Python连接Oracle
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 初识 webpack
  • 反思总结然后整装待发
  • 搞机器学习要哪些技能
  • 如何选择开源的机器学习框架?
  • 王永庆:技术创新改变教育未来
  • 学习Vue.js的五个小例子
  • 自定义函数
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (6)STL算法之转换
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Ruby)Ubuntu12.04安装Rails环境
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (四) Graphivz 颜色选择
  • *Django中的Ajax 纯js的书写样式1
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .naturalWidth 和naturalHeight属性,
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET委托:一个关于C#的睡前故事
  • .NET序列化 serializable,反序列化
  • @ConfigurationProperties注解对数据的自动封装
  • [ linux ] linux 命令英文全称及解释
  • [20161101]rman备份与数据文件变化7.txt
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计