一定解决JavaFx运行时Application爆红色问题

news2024/11/26 1:35:57

文章目录

  • 注意
  • maven项目创建
  • maven + javafx项目配置

注意

以下的问题纯粹是因为新建的是普通项目,而不是Java FX项目,如果新建的是Java FX项目,那么idea会自动给你生成相应的需要的pom.xml文件,并且运行也是正常的
在这里插入图片描述

maven项目创建

创建一个普通项目,构建系统使用Maven
在这里插入图片描述
项目结构:
在这里插入图片描述
src下面有main和test

main下面有java和resources

test下面有java和test resources

test resources没有自动创建,为了完善项目结构一会手动创建一个

最关键的pom.xml文件初始化是这样的
在这里插入图片描述
之后要根据项目的需要进行pom.xml文件的配置

学习maven就是学习怎么配置pom.xml文件

maven + javafx项目配置

想创建一个javafx项目

首先先把可能要添加的依赖理清楚
首先在pom.xml中添加关于javafx的依赖项

因为javafx中可能用到javafx.fxml, 所以也要添加javafx.fxml的依赖

可能之后要连接数据库, 所以要添加mysql-connector-java的依赖

配置pom.xml文件
在添加之前, 要对pom文件的结构进行了解

可以格式化文档之后查看主次结构

以我这次配置的pom.xml文件为例

<?xml version="1.0" encoding="UTF-8"?>

<!-- project是最高级 -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- 项目坐标 -->
    <groupId>groupId</groupId>
    <artifactId>fx1</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <!-- 依赖项添加 -->
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>17.0.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
    </dependencies>

    <!-- 构建项 -->
    <build>
        <!-- 添加插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <!--                    <release>8</release>-->
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.3</version>
                <configuration>
                    <mainClass>sample.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>

        <!--这我不知道是啥 之后查查-->
<!--        <resources>-->
<!--            <resource>-->
<!--                &lt;!&ndash; 这里是放在 src/main/java&ndash;&gt;-->
<!--                <directory>src/main/java</directory>-->
<!--                <includes>-->
<!--                    <include>**/*.properties</include>-->
<!--                    <include>**/*.fxml</include>-->
<!--                    <include>**/fxml/*.fxml</include>-->
<!--                    &lt;!&ndash; 如果想要弄个包名专门放fxml文件,像上一行这样添加设置 &ndash;&gt;-->
<!--                    &lt;!&ndash; 之后,使用getResource("fxml/xx.fxml")这样子 &ndash;&gt;-->
<!--                </includes>-->
<!--                <filtering>false</filtering>-->
<!--            </resource>-->
<!--        </resources>-->

    </build>

</project>

在这里插入图片描述
在pom.xml文件中使用alt+insert快捷键添加依赖项模板

将上面觉得可能要用到的依赖项添加进去

添加的时候有一个麻烦的点,要根据自己使用的软件的版本来说明依赖包的版本

比如上述依赖管理中,来自org.openjfx公司的javafx-controls依赖包和javafx-fxml依赖包就需要明确知道自己使用的jdk的版本,从而写明这两个依赖包的版本

来自mysql公司的mysql-connector-java依赖包就需要明确知道自己的mysql的版本,从而写明这个连接依赖包的版本

所以要去cmd中查看自己一些软件的版本

但是在idea中有小技巧,先填写依赖包的名称,然后在填写另外两个时候先按空格,idea就会自动显示一些版本,有可能准确有可能不准确(比如我的mysql版本是8,但是idea给我显示的链接依赖包的版本就只有5的),如果不准确要自己查询,然后输进去

一旦涉及到版本,就有可能出现软件之间的软件版本不对应的问题,比如mysql8就不能用5版本的连接依赖包

​ 另外不止要添加依赖, 还要添加一些相应的插件

怎么知道要添加的插件名称我现在还不清楚

添加之后, 点击侧边栏的maven, 刷新配置文件

等待依赖项和插件下载完成, 程序就可以运行了
在这里插入图片描述
相比之前要添加好几个jar包的方式方便很多

在用到很多不同的jar包时, 更能显示出maven这个依赖管理工具的便利性

在运行javafx程序的时候, 要创建两个类, 一个app类, 一个appLaunch类, 因为运行Javafx程序要对运行组件进行检查

在maven构建下直接运行app类,会报错
在这里插入图片描述
此时要创建一个运行app类的appLaunch类, 然后运行appLaunch, 才能正常运行
在这里插入图片描述
这个appLaunch类中只要一句话就行

Application.launch(Login.class);
// 注意运行的是已经编译过的class文件

但是与此同时还是有一些问题没有解决,很难受:
对pom.xml文件的详细配置还是不太清楚,可能每一次配置都要经过一大堆的搜索和试错,要继续看一些关于pom文件的文档
对pom.xml文件中怎么搜寻相关需要的插件不清楚,就像这次案例,依赖项可以知道,但是有些插件不知道怎么获取,另外关于为什么要用到这些插件才能运行也不清楚
为什么在maven构建下不能直接运行javafx的程序,必须要另外创建一个运行类;就像vscode中直接运行c/c++程序会出现运行窗口闪退,必须要加上一句system(“pause”);
今天累了,先摸索到这,剩下的时间看一看数据结构,明天准备做助教

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/912586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RPC和HTTP协议

RPC 全称&#xff08;Remote Procedure Call&#xff09;&#xff0c;它是一种针对跨进程或者跨网络节点的应用之间的远程过程调用协议。 它的核心目标是&#xff0c;让开发人员在进行远程方法调用的时候&#xff0c;就像调用本地方法一样&#xff0c;不需要额外为了完成这个交…

Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)

一、简介 Rspack CLI 官方文档。 rspack.config.js 官方文档。 二、创建 vue 项目 创建项目&#xff08;文档中还提供了 Rspack 内置 monorepo 框架 Nx 的创建方式&#xff0c;根据需求进行选择&#xff09; # npm 方式 $ npm create rspacklatest# yarn 方式 $ yarn create…

SSD基本工作原理了解

SSD与RAM的原理有些类似&#xff0c;RAM使用晶体管和电容来表示0或1&#xff0c;晶体管用于将电荷转移到电容器或从电容器中吸取电荷&#xff0c;并且电荷必须每几微秒刷新一次。 而SSD相比于RAM的非易失性来自于其使用的浮栅晶体管。其创造了一个小笼子&#xff0c;不需要外界…

Sui生态项目|集隐私通信、移动钱包、链上朋友圈和红包功能一体的社交应用ComingChat

ComingChat是在Sui网络上构建的去中心化社交平台&#xff0c;功能众多&#xff0c;其中加密聊天功能为用户提供了安全的沟通方式。该功能利用了Signal加密协议&#xff0c;这是一种在Signal、WhatsApp和Skype等应用中广受欢迎的开源软件协议。 ComingChat在Sui上提供了全面的…

Echarts 柱状图-值为0时柱状图数据

需求是这样的&#xff1a;当数据为0时&#xff0c;鼠标悬浮也需要展示对应的数据&#xff0c;当值很小&#xff0c;也需进行占位&#xff0c;所以要加barMinHeight 刚开始以为没有对应方案呢&#xff0c;然后在官网死磕&#xff0c;最后还是找到解决方案了. 打开官网地址 解决方…

软件测试工程师的职业发展方向,别迷茫了,振作起来

软件测试在职业发展上&#xff0c;可以概括分为“管理”和“技术”两大类。另外&#xff0c;软件测试还可以在质量领域发展。 1. 软件测试在管理上的发展 软件测试管理是大家比较熟悉的软件测试职业发展路线之一&#xff0c;比较流行的职位包括测试组长、测试经理、测试代表、…

删除ubuntu开始菜单中的图标

背景 本来是很好看干净的界面 更新谷歌浏览器后出现了Gmail&#xff0c;幻灯片&#xff0c;谷歌硬盘等跟谷歌相关的乱七八糟东西搞得界面就很丑 解决问题 删掉那个图标 输入命令 sudo nautilus /usr/share/applicationssudo nautilus ~/.local/share/applications可以…

风险变化快,业务人员如何快速增加风控规则?

目录 什么是风控规则&#xff1f; 风控规则的来源 如何在风控引擎中配置规则&#xff1f; 今年暑假&#xff0c;博物馆和演出会门票被黄牛抢走。主办方、博物馆如果拥有风控系统&#xff0c;可以制订一系列规则来识别和拦截潜在的黄牛行为。 在制订规则时&#xff0c;需考虑…

什么是负载均衡

前提概述 关于负载均衡&#xff0c;我会从四个方面去说 1. 负载均衡产生的背景 2. 负载均衡的实现技术 3. 负载均衡的作用范围 4. 负载均衡的常用算法 负载均衡的诞生背景 在互联网发展早期&#xff0c;由于用户量较少、业务需求也比较简单。对于软件应用&#xff0c;我们只需要…

code论坛系统测试

目录 一 项目介绍**项目名称****项目介绍****项目功能****项目展示** 二 测试用例设计和功能测试1.测试用例设计**①登录页面****②注册页面****③首页****④发布帖子页面****⑤修改个人信息页面** 2.功能测试环境3.实际执行功能测试的部分操作**①登录页面****②注册页面****③…

Apple Pay 内购项目价格异常相关

通过 Apple Pay 内购商品子项的实际支付价格与 App Store Connect 配置中的存在差异; 经过已经排查过后发现是参照转换汇率的基准方式导致; 在 App 内购买项目 > 价格时间表 > App 内购买项目定价 > 所在国家或地区 一栏中,官方默认配置是以美国(USD)换算为基准 解决办…

优思学院|车间管理的五大基本方法

车间管理对于任何制造型企业来说都是至关重要的一环。有效的车间管理可以帮助企业提高生产效率&#xff0c;降低成本&#xff0c;改善产品质量&#xff0c;以及增强员工士气。在这篇文章中&#xff0c;我们将探讨车间管理的五大基本方法&#xff0c;这些方法可以帮助企业更好地…

NOIP 2011 提高组复赛真题及题解(day1 day2) Pascal语言

题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有n 张地毯&#xff0c;编号从1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设&#xff0c;后…

FreeCAD傻瓜式教程之约束设定、构建实体、开孔、调整颜色、透明度、参考距离、任意修改尺寸、保持开孔居中等

本内容基于官方教程中的绘制简单的零件中的体会&#xff0c;在初次绘制的时候&#xff0c;总是无法完成&#xff0c;几经尝试才发现其关键点所在&#xff0c;以此文记录&#xff0c;用以被查资料&#xff0c;同时也希望能够帮到纯白新手快速熟悉该软件的绘图方法。 一、. 打开…

GEEMAP 基本操作(二)如何对 Landsat 进行全色锐化

遥感全色锐化的目标是从图像中获得最高级别的视觉清晰度和细节&#xff0c;通过结合全色波段图像的高空间分辨率和多光谱&#xff08;Landsat 为 B8 全色&#xff09;图像的宽光谱范围&#xff0c;全色锐化能够生成质量更清晰的最终彩色图像。 全色锐化过程涉及应用数学算法&a…

IDC发布《亚太决策支持型分析数据平台评估》报告,亚马逊云科技位列“领导者”类别

日前&#xff0c;领先的IT市场研究和咨询公司IDC发布《2023年亚太地区&#xff08;不含日本&#xff09;决策支持型分析数据平台供应商评估》1报告&#xff0c;亚马逊云科技位列“领导者”类别。IDC认为&#xff0c;亚马逊云科技在解决方案的协同性、敏捷性、完整性、及时性、经…

Keras三种主流模型构建方式:序列模型、函数模型、子类模型开发实践,以真实烟雾识别场景数据为例

Keras和PyTorch是两个常用的深度学习框架&#xff0c;它们都提供了用于构建和训练神经网络的高级API。 Keras: Keras是一个高级神经网络API&#xff0c;可以在多个底层深度学习框架上运行&#xff0c;如TensorFlow和CNTK。以下是Keras的特点和优点&#xff1a; 优点&#xf…

keepalived+lvs+nginx高并发集群

keepalivedlvsnginx高并发集群 简介&#xff1a; keepalivedlvsnginx高并发集群&#xff0c;是通过LVS将请求流量均匀分发给nginx集群&#xff0c;而当单机nginx出现状态异常或宕机时&#xff0c;keepalived会主动切换并将不健康nginx下线&#xff0c;维持集群稳定高可用 1.L…

浏览器安装selenium驱动,以Microsoft Edge安装驱动为例

Selenium是一个用于Web应用程序测试的自动化工具。它可以直接在浏览器中运行&#xff0c;模拟真实用户对浏览器进行操作。利用selenium&#xff0c;可以驱动浏览器执行特定的动作&#xff0c;比如&#xff1a;点击、下拉等等&#xff0c;还可以获取浏览器当前呈现的页面的源代码…

【数据结构与算法】总结关于二叉树题型经典面试题

【数据结构与算法】二叉树题型经典面试题 1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的最近公共祖先4.二叉搜索树与双向链表5.从前序与中序遍历序列构造二叉树6.从中序与后序遍历序列构造二叉树7.二叉树的前序遍历(非递归方法)8.二叉树的中序遍历(非递归方法)9.二叉树的…