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

现象

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

java 复制代码
  listviewitemListener = new ChangeListener() {
      @Override
      public 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() {
                  @Override
                  public 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就可以了

java 复制代码
private ChangeListener listviewitemListener=null;


@FXML
void check(ActionEvent event)  {
        if(listviewitemListener!=null){
            infoLV.getSelectionModel().selectedItemProperty().removeListener(listviewitemListener);
        }
}
相关推荐
小梁努力敲代码41 分钟前
java数据结构--List的介绍
java·开发语言·数据结构
摸鱼的老谭1 小时前
构建Agent该选Python还是Java ?
java·python·agent
lang201509281 小时前
Spring Boot 官方文档精解:构建与依赖管理
java·spring boot·后端
夫唯不争,故无尤也1 小时前
Tomcat 启动后只显示 index.jsp,没有进入你的 Servlet 逻辑
java·servlet·tomcat
zz-zjx2 小时前
Tomcat核心组件全解析
java·tomcat
Deschen2 小时前
设计模式-外观模式
java·设计模式·外观模式
why技术2 小时前
从18w到1600w播放量,我的一点思考。
java·前端·后端
夫唯不争,故无尤也3 小时前
JavaWeb流式传输速查宝典
java·流式传输
苏小瀚3 小时前
算法---位运算
java·算法
Camel卡蒙4 小时前
数据结构——二叉搜索树Binary Search Tree(介绍、Java实现增删查改、中序遍历等)
java·开发语言·数据结构