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

javafx例子笔记

文章目录

    • 创建过程
    • javafx独立版
      • 报错 Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>

javafx是java gui工具。 一般会转换为exe,成为可交互的应用。

那么来个简单的例子吧。
先说明一点,javafx不用任何依赖。用maven项目也可以。

创建过程

创建一个空pom.xml,内容:

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.11.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>javafx-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>javafx-demo</name><description>Demo project for Spring Boot</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><!-- lang3 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version></dependency><!-- fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version></dependency><!-- 工具类 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.14</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><finalName>javafx-demo</finalName><outputDirectory>../target</outputDirectory><fork>true</fork><executable>true</executable></configuration></plugin></plugins></build></project>

创建类:

public class Main extends Application {public static void main(String[] args) {launch(args);}public void start(Stage primaryStage) throws Exception {BorderPane root = new BorderPane();Label label = new Label("Hello World");root.setCenter(label);Scene scene = new Scene(root);primaryStage.setScene(scene);primaryStage.setWidth(800);primaryStage.setHeight(600);primaryStage.setTitle("JavaFx Demo");primaryStage.show();}
}

在该类右键运行,弹框 hello world 表示成功。
然后打包,再用exe4j转换为exe,就可以供人使用了。

javafx独立版

java8是支持javafx的,但是不太智能。java8之后javafx独立出来,需要单独引入。

报错 Exception in thread “WindowsNativeRunloopThread” java.lang.NoSuchMethodError:

at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens

详细报错:
Exception in thread “WindowsNativeRunloopThread” java.lang.NoSuchMethodError:
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)

这个报错可费了劲了。最终也没解决,整理下做的尝试。
1、jdk版本不对,JAVA_HOME设置为jdk11对应路径。
2、有说修改init方法的
覆盖类重写方法 com.sun.javafx.application.Application,(报错了,还没到改代码那层)
在init里面添加内容:

if (osdetector.os == 'windows') {
systemProperty "java.library.path", "D:\Program Files\Java\jdk-11.0.21"
}
}

3、发现jre不存在
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

4、javafx maven插件添加内容(实测也无效)

-Djava.library.path=D:\Program Files\Java\jdk-11.0.21

注:网上有人说解决掉了,是电脑只能安装一个jdk版本。个人电脑都是用的解压版,应该只用切换java_home即可。卸载代价太大了,还有很多其他项目。

http://www.lryc.cn/news/380225.html

相关文章:

  • 【ajax基础】回调函数地狱
  • SparkSQL的分布式执行引擎-Thrift服务:学习总结(第七天)
  • 联华集团:IT团队如何实现从成本中心提升至价值中心|OceanBase 《DB大咖说》(十)
  • 计算机系统基础实训五—CacheLab实验
  • PHP框架之CodeIgniter框架
  • 714. 买卖股票的最佳时机含手续费
  • Linux系统查看程序内存及CPU占用
  • 数据结构7---图
  • Excel 如何复制单元格而不换行
  • 前端 CSS 经典:mix-blend-mode 属性
  • OpenCV--滤波器(一)
  • MK的前端精华笔记
  • 低代码平台框架:开源选型、实践与应用深度解析
  • 深度学习500问——Chapter12:网络搭建及训练(3)
  • Android使用DevRing框架搭建数据库实体类以及使用
  • 高效BUG管理:定级、分类和处理流程
  • 服务器数据恢复—raid5热备盘同步失败导致阵列崩溃如何恢复数据?
  • Ubuntu iso 镜像下载 步骤截图说明
  • git拉取gitee项目到本地
  • 力扣42.接雨水
  • 国产数据库与MYSQL兼容性?开发应该怎么选择?
  • Spring框架中Bean的生命周期
  • 从零到一学FFmpeg:avformat_alloc_output_context2 函数详析与实战
  • Lua 绕过元表
  • pip方法总结(极简快速掌握)
  • aigc基础概念(一)
  • USB学习——12、usb初始化和插拔驱动软件流程大致框架描述
  • 【ARMv8/ARMv9 硬件加速系列 2.4 -- ARM NEON Q寄存器与V寄存器的关系】
  • Oracle中递归查询(START WITH……CONNECT BY……)
  • 【云原生|K8S系列】如何创建Kubernetes job和Cronjobs 入门指南