java swing重复调用javafx窗口出现Application launch must not be called more than once解决方法

2023-05-16

javafx程序Application launch must not be called more than once报错的结局方法,解决javafx重复调用的问题。

本人遇到的问题,使用java swing调用 javafx文件选择器出现的的报错
Application launch must not be called more than once,经过通宵一晚上终于解决了这个问题。

javafx文件选择器代码.

package com.water.util;
import javafx.application.Application;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import java.io.File;
import javax.swing.filechooser.FileSystemView;

public class FileWindows extends Application {
	 public  static  String res=null;
    public void start(Stage stage)  throws Exception{
        FileChooser chooser=new FileChooser();
        FileSystemView fsv = FileSystemView.getFileSystemView();  //注意了,这里重要的一句  
        chooser.setInitialDirectory(new File(String.valueOf(fsv.getHomeDirectory())));   //设置初始路径,默认为我的电脑
        chooser.setTitle("打开SQL");                //设置窗口标题,默认为“打开”
        chooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("sql", "*.sql"));
        	try {
           	  res = chooser.showOpenDialog(stage).getAbsolutePath(); //chooser.showOpenDialog(stage)得到File对象
           	Tools.execute(res);
           	Tools.messageWindows("导入成功");
           }catch(Exception  e) {
           }
    }
}`
//错误调用方法
public  void starts() {
    	launch(null);
    	 
    }

1.我先说一下我错误调用的方法,正常启用javafx窗口程序的时候,调用时候如下代码

public static void main(String arg[]){
		launch(arg)
}

2.我先lunch(arg)封装到一共方法里面进行重复调用的时候,第一次调用javafx窗口的时候,在使用结束窗口关闭的时候,单javafx线程还在继续运行,导致当第二次调用同一次窗口的时候,无法打开窗口,并报错Application launch must not be called more than once,是因为上次的进程没有关闭,无法进行第二次的调用

3.解决方法 如果下。请将下面注释横线内部的内容换成要重复调用的javafx窗口程序

SwingUtilities.invokeLater(new Runnable() {
			            @Override
			            public void run() {
			                new JFXPanel(); // this will prepare JavaFX toolkit and environment
			                Platform.runLater(new Runnable() {
			                    @Override
			                    public void run() {
							//----------------------------
							//调用的时候通过无参调用方法,来调用start(new Stage())来实现加载
							//并重复打开内容
			                    	FileWindows f = null;
					            	try {
					            		
						          		f=new FileWindows();
										f.start(new Stage());
									}catch(Exception  e) {
									
										e.printStackTrace();
									}
							//----------------------------
			                    }
			                });
			            }
			        });

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java swing重复调用javafx窗口出现Application launch must not be called more than once解决方法 的相关文章

随机推荐

  • 对时间操作

    TextBox1 Text 61 DateTime Today ToString 34 yyyy年M月d日 34 点第一个BUTTON时 TextBox1 Text 61 DateTime Today AddDays 1 ToString
  • docker访问samba服务器做持久化

    需求 xff1a 在window上 xff0c 我们经常使用 192 168 24x 1xx xxx 这样的路径访问网络共享文件服务器 xff0c 测试人员将访该文件服务器做持久化给到类似rancher这样的k8s管理平台上的docker操
  • 数据库迁移思路梳理

    1 分析系统 xff1a 进一步分析系统的功能和需求确认 业务需求分析 应用分析 评估工作量 2 制定方案 xff1a 确定迁移的重点和难点 xff0c 制定迁移方案 2 1确定数据库结构 xff1a 明确数据表 表中字段和各字段的数据类型
  • Maven 国内镜像仓库

    镜像仓库目标 当我们未定义任何远程仓库时 xff0c 使用 Maven 更新依赖时 xff0c 其会去默认远程仓库中拉取 xff0c 默认远程仓库 是国外地址 xff0c 所以在国内访问特别慢 xff0c 想提升访问速度 xff0c 需要将
  • 命名难,难于上青天

    Photo by Jorik Kleen on Unsplash Quora 问答社区的一个开发者投票统计 xff0c 程序员最大的难题是 xff1a 如何命名 xff08 例如 xff1a 给变量 xff0c 类 xff0c 函数等等 x
  • 企业发放的奖金根据利润提成

    案例 xff1a 利润I低于或等于10万元时 xff0c 奖金可提10 xff05 xff1b 利润高于10万元 xff0c 低于20万元 xff08 10000 lt I 200000 xff09 时 xff0c 其中10万元按10 xf
  • Python3的序列——3、字典(dict)的详细讲解

    一 字典的定义 xff1a 1 字典 xff08 dict xff09 是一种可变的容器模型 xff0c 可以存储任意类型的数据 xff0c 是以键 key 值 value 对的方式进行数据存储 xff0c 键和值之间用冒号分隔 xff0c
  • shell中正则表达式的使用

    下面介绍shell中正则表达式的两种使用方法 使用方法一 xff1a 赋值给变量var read var 定义regex正则表达式 regex 61 span class hljs string 34 0 9 34 span span cl
  • 区间动态规划问题(游艇租用问题)

    问题描述 长江游艇俱乐部在长江上设置了n个游艇出租站1 xff0c 2 xff0c xff0c n 游客可在这些游艇出租站租用游艇 xff0c 并在下游的任何一个游艇出租站归还游艇 游艇出租站i到游艇出租站j之间的租金为r i j 1 lt
  • Ubuntu 22.04系统设置固定IP地址

    在Ubuntu 22 04系统中 xff0c 可以通过编辑网络配置文件来设置固定IP地址 以下是手动设置的具体步骤 xff1a 打开网络配置文件 xff1a sudo vi etc netplan 00 installer config y
  • JS当中的本地缓存与离线缓存(超详细的哈)

    什么是离线缓存 1 第一步我们要在创建mf appcache这个文件 manifest 61 span class token string 34 mf appcache 34 span 这个是我们要引入的文件 lt DOCTYPE htm
  • word 2013 长篇文档排版案例教程

    1 前言 平时偶尔可能会遇到需要制作长篇文档的情况 xff0c 比如论文 书稿等 xff0c 需要进行一些复杂的编辑 xff0c 像设置级别标题 分节显示页码 封面 标题 目录 页眉 页脚 参考文献等等 xff0c 不少同学为此犯愁 xff
  • Python+moviepy使用manual_tracking和headblur函数10行代码实现视频人脸追踪打马赛克

    前往老猿Python博文目录 一 背景知识 1 1 headblur简介 追踪人脸打马赛克需要使用headblur函数 调用语法 headblur clip fx fy r zone r blur None 说明 其中参数fx和fy是两个函
  • OpenCV自适应直方图均衡CLAHE C++源代码分享

    一 引言 最近收到几个网友提供OpenCV中CLAHE的源代码的请求 xff0c 在此直接将OpenCV4 54版本CLAHE CPP的源码分享出来 二 OpenCV源代码的下载 下载地址 xff1a https sourceforge n
  • Linux下记住Gitee账户密码

    Linux下记住Gitee账户密码 创建Git认证文件 在 下 xff0c touch创建文件 git credentials 用vim编辑此文件 xff0c 输入 xff1a https username password 64 gite
  • 数字图像处理:线性和非线性滤波的平滑空间滤波器(Smoothing Spatial Filters)

    引言 本系列文章记录老猿自学冈萨雷斯 数字图像处理 的感悟和总结 xff0c 不过估计更新会比较慢 xff0c 白天要工作 xff0c 都是晚上抽空学习 xff0c 学习完一章再回头总结 xff0c 想学的朋友可以自己下载英文原版 xff0
  • 模拟——洛谷P1185 绘制二叉树

    https www luogu org problem show pid 61 1185 哈哈 xff0c 我的代码是唯一一个不到1kb的 xff1b 时间不是最快的 xff0c 但是我的代码没用hk跑 xff1b 要用hk跑的话 xff0
  • Epoll服务器的简单实现

    1 Begins 学习linux编程很久 xff0c 只知道网络编程是socket xff0c bind xff0c listen xff0c 然而这些都是网络通信软件最基本的接口 在某网络公司待了y xff0c 也了解到公司的基础就是网络
  • 获取文件中内容的行数

    在 include lt sys types h gt include lt sys stat h gt include lt unistd h gt stat函数是 获取文件的 inode的信息 struct stat dev t st
  • java swing重复调用javafx窗口出现Application launch must not be called more than once解决方法

    javafx程序Application launch must not be called more than once报错的结局方法 xff0c 解决javafx重复调用的问题 本人遇到的问题 xff0c 使用java swing调用 j