IDEA+maven+javafx(java 1.8)入坑记录
序
好久没写博客了,主要是因为懒,写博客真的是个难坚持的事。但今天登上来看了看,之前记录ctf写的wp竟然点击量这么多了,突然让我有了继续写下去的动力。
这段时间遇到了好多事,中间也有想过写几篇文章记录下,每每准备动笔时都懒癌发作,有的文章起个头就没写了。
这次这个破玩意让我费了九牛二虎之力,而且我发现网上文章几乎没有此类教程时,让我重燃了写博客的斗志。
起因

最近看到了这个东西,下载下来用了下,发现是python做了一个界面,收集的各种工具。而最主要不是这个工具本身,而是让我感觉师傅们好像都在做GUI界面,我突然就有了兴趣,也想自己搞一搞了。
我简单看了看这里面的工具,大部分是java做的,大部分好像是jwt或swing做的,也有一些好看一点的就是javafx做的了。
对于GUI,我之前学过一点qt,但是被它槽和信号折磨的头痛欲裂,再加上其灵活多变,国内教程少就放弃了。然后看了看其它的GUI,由于我想要跨平台、可编辑GUI(说白了就是懒)并且我对js一窍不通,最后就选择学一下javafx。
开整
打开百度和b站我才发现,这破玩意好多人还在用eclipse做开发,idea做的教程少之又少,国内甚至没有,于是我自己开启了排坑之路。
第一步:下载JavaFX Scene Builder
地址:https://www.oracle.com/java/technologies/javafxscenebuilder-1x-archive-downloads.html
这个东西的作用就是让你有可编辑的GUI界面,甚至可以直接生成代码并预览,非常方便。
安装好后就会有下面这个图标:

同时下好fx插件

第二步:去官网看教程按步骤做
这块很重点,建议跟着一步一步来
地址:https://openjfx.cn/openjfx-docs/#next-steps

新建一个maven项目,archetype选javafx,一般来说第一次都没有,按照官网说明添加即可

名字瞎b起,maven选自己的比较好,然后到重点了,这里一定要按照官网选择javafx-archetype-fxml或javafx-archetype-simple,不能用默认配置

这里我选择了simple的模式后,完成
此时我们按照教程运行compiler:compile大概率是会报错的

这是由于jdk版本问题导致,官网默认是11,而我们用的是8
首先把pom.xml这里改掉

然后进入setting把这里改掉

然后看一下代码App.java,可以看到var类型在java8中并不支持,所以手动替换

module-info.java我们也并不需要,删掉即可

好了,此时我们compiler:compile,并且javafx:run。或者直接在App.java的main函数里右键run,就能出现如下窗口

此时还没实现GUI编辑,你可以构建如下目录。这里要注意resources下级目录要与java中保持一致

具体simple.fxml的内容可以参考在创建项目时直接选择javafx的,也可以选择javafx-archetype-fxml,这样会自带resources和fxml
代码改掉

此时就可使用GUI编程了

第三步:编译处jar文件
我们目的是跨平台的软件,肯定要编译成jar去运行,此处设置如下
先把编译版本选成java8

然后建立artifacts,此处一定注意如图选项,不能用默认的,必须选到根目录,不然编译完成后会找不到主类

点击build

双击运行一下

到这里就大功告成了!!!!!!
当然有了maven你想加什么依赖都是很容易的事了,最后展示一下,我的小玩具

IDEA+maven+javafx(java 1.8)入坑记录的更多相关文章
- c#调用c++ dll 入坑记录
1.DLL引用坑 [DllImport("NetDLL.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConve ...
- React Native入坑记录
1.render中如果使用props,直接用this.props.xxx,如果是在JSX中,用{this.props.xxx} 2.警告each child in an array or iterat ...
- Windows To Go入坑记录
什么是Windows To Go? https://en.wikipedia.org/wiki/Windows_To_Go 微软为了解决企业用户的需求而推出,可以在u盘或者移动硬盘启动window系统 ...
- vue element InfiniteScroll 无限滚动 入坑记录
select_law_by_tag() { this.laws_loading.is_loading = true; this.laws_loading.no_more = false; this.e ...
- 入“坑”mybatis后如何挣脱?
既然已经入"坑"mybatis了,你竟然还想着挣脱,我是不会让你挣脱的~ 当然我有一个算是挣脱的办法.那就是把它学会.理解透.这样我们也就不用在坑里一直徘徊,也算得上是一种挣脱吧! ...
- Angular 从入坑到挖坑 - Angular 使用入门
一.Overview angular 入坑记录的笔记第一篇,完成开发环境的搭建,以及如何通过 angular cli 来创建第一个 angular 应用.入坑一个多星期,通过学习官方文档以及手摸手的按 ...
- Angular 从入坑到挖坑 - 组件食用指南
一.Overview angular 入坑记录的笔记第二篇,介绍组件中的相关概念,以及如何在 angular 中通过使用组件来完成系统功能的实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件 ...
- Angular 从入坑到挖坑 - 表单控件概览
一.Overview angular 入坑记录的笔记第三篇,介绍 angular 中表单控件的相关概念,了解如何在 angular 中创建一个表单,以及如何针对表单控件进行数据校验. 对应官方文档地址 ...
- Angular 从入坑到挖坑 - HTTP 请求概览
一.Overview angular 入坑记录的笔记第四篇,介绍在 angular 中如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互. 对应官方文档地址: Angul ...
随机推荐
- camera HSYNC:VSYNC
HSYNC:行锁存,换行信号VSYNC:祯锁存,换页信号 320×240的屏,每一行需要输入320个脉冲来依次移位.锁存进一行的数据,然后来个HSYNC 脉冲换一行:这样依次输入240行之后换行同时来 ...
- 奔跑吧linux-第三章实验
基于树莓派+openeuler平台 实验 3-2:汇编语言练习--查找最大数 1.实验目的 通过本实验了解和熟悉 ARM64 汇编语言. 2.实验要求 使用 ARM64 汇编语言来实现如下功能:在给定 ...
- Java 中 List 分片的 5 种方法!
前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错,如下图所示: 原因是 MySQL 只能执行一定长度的 SQL 语句,但当插入的数据量较多时,会生 ...
- Arraylist,LinkedList和Vector的异同
相同: 都是List接口的常用类,List接口:存储有序,可重复的数据 差异: ArrayList: 是作为List接口中的主要实现的类:线程不安全,效率高.底层使用是Object[] element ...
- linux&c 进程控制 课后习题
(声明:本篇博客只是博主自己的理解,加以整理,目的是总结刚学过的进程知识,不一定绝对正确,非常愿意听客官您提出宝贵意见.) Q1:进程中的全局数据段(全局变量),局部数据段(局部变量),静态数据段的分 ...
- k8s入坑之路(9)k8s网络插件详解
Flannel: 最成熟.最简单的选择 Calico: 性能好.灵活性最强,目前的企业级主流 Canal: 将Flannel提供的网络层与Calico的网络策略功能集成在一起. Weave: 独有的功 ...
- part 36 AngularJS route reload
In this video we will discuss angular route service reload() method. This method is useful when you ...
- 解决tomcat的404问题
遇到的问题 点击startup.bat启动tomcat启动成功,但在网页上输入local:8080却显示Access Error: 404 -- Not Found Cannot locate doc ...
- Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)
Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...
- Chrome handless无界面浏览器的脚本操作
1.什么是Phantomjs (已经停止更新) 是一个无界面的浏览器 支持页面元素查找,js的执行等 由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多 2.如何使用Phantomjs? ...