Java开发桌面程序学习(一)--JavaFx+Jfoenix初始以及搭建 前言 想做一个Java的桌面程序,但是,使用原生的Swing感觉又十分麻烦,那个布局都是拿代码设置,看着十分的乱,偶然的情况下, 了解到了JavaFx,使用上Jfoenix的UI,界面十分好看,便是想来学一学. 虽然现在大多数桌面程序都是使用微软的.net,使用的是VB,C#.但是,我现在暂时又太想学新知识,懂Java就拿Java做吧. JavaFx介绍 我们都知道,Java中可以使用swing来写Java程序的界面,不…
布局 前言 刚开始的时候,不知道使用什么布局,发现SceneBuilder其实有8.5版本的,里面就是有提供一个简单的桌面程序模板,8.5可以去官网下载,不过网速好像有点慢,慢慢等吧,官网下载地址 布局分析 外层是一个VBox,然后使用MenuBar,MenuBar的宽度就会自动和VBox的宽度保持一致(之前我使用的是FlowPane,弄了半天都不能自动适应宽度). MenuBar中有很多常用的MenuItem选项,我们可以根据自己的选择删除,并修改文字 中间的空白面板就是一个AnchorPan…
对话框的封装使用 最近写了个JFXUtils,DialogBuilder也是包含在里面了 JFXUtils的Github 前言 登录需要弹出登录对话框,但是,Jfoenix库使用对话框比较难受,还得动态去生成布局,我想起了Android的对话框生成,便是封装了一个,一行代码即可生成 使用 使用的话,直接一行代码即可 ,下面的几种常用的情况! 只有一个确定按钮,按下esc可以退出 //tfOutPath是一个控件(controller) new DialogBuilder(tfOutPath).s…
JavaFxTemplate 使用说明 项目基于maven,请确保maven配置成功,否则,可能会出现问题 项目内置了commons-io的jar包,Jfoenix的jar包以及常用的工具类JFxUtils,具体使用请看注释! 原本是想将JFxUtils单独出来,打成一个jar包,不过,项目引用之后一起打成jar包,项目的jar包跑不起来,报找不到类的错误. 复制该项目,修改项目名,之后修改pom.xml中的 groupId,artifactId,version. 打开IDEA,Main.jav…
Javafx 悬浮窗提示 tooptip 鼠标悬浮在某个控件,弹出提示,效果如下: 代码: //control是某个控件 Tooltip.install(control, new Tooltip("鼠标悬浮显示的文字"));…
javafx 鼠标事件 给某个控件设置鼠标点击监听器,三个条件分别判断为单击,右击还是双击 单击判断 event.getButton()==MouseButton.PRIMARY 右击判断 event.getButton()==MouseButton.SECONDARY 双击判断 event.getClickCount() == 2 例子: control.setOnMouseClicked(event -> { MouseButton button = event.getButton(); /…
普通使用 Task<Void> task = new Task<Void>() { @Override protected void succeeded() { super.succeeded(); //当call方法里面的操作完成,回调 } //还可以自定义一些方法,之后可以在call等方法调用 @Override protected Void call() throws Exception { //后台操作 return null; } }; new Thread(task).…
JavaFx项目 新建完项目,我们的项目有三个文件 Main.java 程序入口类,载入界面并显示 Controller.java 事件处理,与fxml绑定 Sample.fxml 界面 sample.fxml需要通过标签fx:controller定义对应的controller <!-- 最外层的那个布局使用fx:controller属性即可 --> <FlowPane fx:controller="sample.Controller" ..> </Flo…
ImageView设置图片 JavaFx的ImageView,设置图片不能直接通过属性设置,只能通过代码来设置 ImageView设置图片 首先,我们让fxml对应的那个controller的java文件实现Initializable接口,之后就在复写的该接口的initialize方法中设置我们ImageView的图片 我的图片是放在了一个img文件夹里 之后,和之前的fxml一样,得去修改pom.xml,不然maven就会把img这个文件夹的内容全部忽略掉,之后就会找不到图片文件 @Overr…
css样式表使用 javafx中的css样式,与html的有些不一样,javafx中的css,是以-fx-background-color这种样子的,具体可以参考文档JavaFx css官方文档 javafx中,css样式有两种使用方法 直接在fxml中使用 fxml引用css文件 fxml直接使用样式 在某个控件中使用style属性即可 <Text layoutX="235.0" layoutY="173.0" style="-fx-backgro…
拖动获得文件路径 在windows软件中,很多软件都提供了拖动文件的打开文件的功能,JavaFx中也是有这功能,是通过监听器来实现的 监听器 setOnDragDetected(new EventHandler()); 当你从一个Node上进行拖动的时候,会检测到拖动操作,将会执行这个EventHandler. setOnDragEntered(new EventHandler()); 当你拖动到目标控件的时候,会执行这个事件回调. setOnDragExited(new EventHandle…
选择器的使用 DirectoryChooser目录选择器官方文档 FileChooser文件选择器官方文档 文件选择器的使用 JavaFx中有个FileChoser,可以打开一个对话框来选择文件 FileChooser fileChooser = new FileChooser(); //添加扩展名过滤器,过滤文件 //注意,这个过滤器添加得在showOpenDialog方法之前,不然会没有效果,这里注意需要有个 * 号 fileChooser.getExtensionFilters().add…
css 样式表使用 javafx中的css样式,与html的有些不一样,javafx中的css,是以-fx-background-color这种样子的,具体可以参考文档JavaFx css官方文档 简单来说,普通的javafx,以 javafx中,css样式有两种使用方法 直接在fxml中使用 fxml引用css文件 fxml直接使用样式 在某个控件中使用style属性即可 <Text layoutX="235.0" layoutY="173.0" style…
启动浏览器或者打开资源管理器 启动浏览器 java1.6版本以上,Desktop Desktop.getDesktop().browse(new URI("www.cnblogs.com/kexing")); 打开资源管理器 三种方式 //第一种常用,打开q:\\MyBlog这个文件夹目录 Desktop.getDesktop().open(new File("q:\\MyBlog")); Runtime.getRuntime().exec("explor…
这个是本人这几天用javafx开发桌面程序时候想到的,因为虽然javafx比C#之类的确实坑多不少,但是习惯了之后也还行,而且它的一次编译.各处使用真的深得我心.但为什么不流行呢: 作者:bell 来源:https://www.zhihu.com/question/19711713 Java的桌面程序并不少,其中最为知名的莫过于Eclipse.在Linux和Mac下,Java程序的比例远高于Windows下. 不过,"Java不适合写桌面应用"的说法有一定道理,论调的主要背景是供Win…
使用JavaFX开发桌面程序 注:我也是JAVA FX的初学者之一,自己在学习的时候踩了许多的坑,中文英文的资料查了不少,但是觉得FX技术和其他热门技术相比,教程还是太少了.这里就尽量做一点微小的贡献吧 使用环境 注:写这个只是为了说明我的环境,使用和我的不一样的环境在理解这篇教程的时候并没有什么问题,例如使用Windows平台.使用Oracle JDK(这样就不需要再单独安装FX组件了,可以不用MAVEN).使用Oracle的SceneBuilder.可能唯一一个比较影响体验的就是不使用IDE…
主要内容: 1.JAVA平台应用 2.核心概念:JVM,JDK,JRE 3.搭建JAVA开发环境 4.学习JAVA的原则 JAVA的平台应用 JAVA的平台应用分为3个部分: 一.JAVA SE,主要用来开发桌面应用软件. 二.JAVA ME,嵌入式开发. 三.JAVA EE,网络编程,JSP等. 核心概念:JVM,JDK,JRE 字节码文件运行在JVM中,字节码和虚拟机是实现Java一次编译,四处运行跨平台的关键. 想吃鱼---去买鱼---杀鱼的过程相当于编译器----给鱼烧熟这个过程属于解释…
Atitit.使用引擎加脚本架构的设计 使用php,js来开发桌面程序.. 1. 引擎加脚本架构 跨平台,桌面与web的优势1 2. 架构桌面引擎(java,c#)2 3. php桌面引擎要点2 3.1. 运行环境:同时支持cs桌面与web方式2 3.2. 界面使用html5+css+js实现2 3.3. Cli接口互操作,与web接口互操作2 3.4. 其他----------流程2 3.4.1. Html5界面确定要是有的后台引擎$parser=php c# java js2 3.4.2. …
项目:https://www.lking.top/?p=87 1. JPanel面板绘制背景图片问题. 参考大佬:https://www.jb51.net/article/101516.htm 本项目中顶部标题栏即使用该方法设置背景. @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(CommonUtils.getImage(R.Images.SIGN_IN_TOP…
Java作为一门名副其实的工业级语言,语法友好,学习简单,大规模的应用给代码质量的管控带来了困难,特别是团队开发中,开发过程中的规范会直接影响最终项目的稳定性. 善医者“未有形而除之”,提高工程健壮性最好的方式是在代码出现问题之前就排除掉,不给Bug出现的机会.一份好的开发规范就可以起到这样的作用,大大减少产品上线后的问题. <阿里巴巴Java开发手册>是阿里巴巴的内部编码规范,阿里官方的Java代码规范标准, 手册以Java应用开发为维度,分为编程规约.异常日志规约.MYSQL规约.工程规约…
很多人都知道,阿里巴巴在2017发布了<阿里巴巴Java开发手册>,前后推出了很多个版本,并在后续推出了与之配套的IDEA插件和书籍. 相信很多Java开发都或多或少看过这份手册,这份手册有7个章节,覆盖了编程规约.异常日志.单元测试.安全规约.MySQL数据库.工程结构以及设计规约等方面. 这份规约可以说是覆盖了Java开发的方方面面,如果还有人没看的话,强烈建议大家好好看看,并且仔细研读. 手册中,有那么一些规则,是比较容易理解的.比如一些变量命名规范,有另外一些规则,是不太容易理解的,背…
一:使用java swing开发窗口程序 简述: 1.文章内容主要是使用java swing类库开发一个小的窗口程序,然后使用exe4j发布成exe可以安装的程序,让初学者对使用java来做pc软件开发有个整理的认识. 2.项目存在问题:运行后是这个样,自己调整下窗口大小就行了.(我设置过窗口大小,但是没有起作用,后面会排查下原因) 1.环境安装,建议使用jdk1.8:(总之jdk版本要和exe4j版本保持一致) 2.eclipse中新建项目: 3.新建java项目,项目名自己随意 4.新建一个…
用 node-webkit 开源框架. 做企业站,杠杠地 包括电子书和支付宝系统都是node开发的,. 接收传感器发送的数据再运算...对水泵.风机.空调这些硬件进行远程控制. 细数10个令人惊讶的NodeJS开源项目 在几年的时间里,NodeJS逐渐发展成一个成熟的开发平台,吸引了许多开发者.有许多大型高流量网站都采用NodeJS进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动Web框架. 除了Web应用外,NodeJS也被应用在许多方面,本文盘点了NodeJS在其它方面…
2015年毕业到现在已经3年了,而我转型开发已经有一年的时间了.写这篇文章除了记录,主要还是想分享一些经历给想要转型开发的同学们,不要走那些我走过的弯路. 2015年入职了第一家公司,当时是做的分销系统的维护,以及OA系统的维护.说白了就是软件系统的管理员,学会了怎么操作那个系统之后,教别人如何使用.每天的工作都是处理一些系统使用上的一些问题.刚开始我还是激情满满,差不多过了一年之后,我开始意识到了我的未来没有什么发展,我不知道我还能学到什么,对于一个处理人际关系不行的人,也很难走上管理的岗位.…
网络上大家分享的 aardio + Python 混合开发的文章很多,不得不说 aardio 与 Python 混合开发是真的简单 !  快速入门 推荐几个快速上手教程:< aardio + Python 开发桌面软件快速入门 >< aardio 快速入门 - 语法速览 > 在 aardio 中可直接创建 Python 工程: aardio 可视化开发图形界面非常方便,相关的教程.开源项目都很多,这里就不多说了. 至于 aardio + Python 互调也非常简单,示例: imp…
import java.util.ResourceBundle ; public class InterDemo01{ public static void main(String args[]){ ResourceBundle rb = ResourceBundle.getBundle("Message") ; // 找到资源文件,不用编写后缀 System.out.println("内容:" + rb.getString("info")) ;…
现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升, 但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比较短的同学挺有意义的. 一 条件控制语句中的优化 1.在循环中应该避免使用复杂的表达式. 在循环中,循环条件会被反复计算,应该避免把一些计算放在循环进行的部分中,程序将会运行的更快.比如: for(int i=0;i<list.size();i++) 可以改为 //我的电脑上,测试数量级在10^7,…
使用Eclipse开发第一个WebService程序,本示例采用的工具为Spring-Tool-Suite,和Eclipse没有本质的区别,开发环境jdk1.7 一.开发步骤: 1.新建名为WebService项目 新建HelloService类,放在com.test.webservice包下 下面进行服务端程序的编写: package com.test.webservice; import javax.jws.WebService; import javax.xml.ws.Endpoint;…
public class RegexDemo01{ public static void main(String args[]){ String str = "1234567890" ; // 此字符串由数字组成 boolean flag = true ; // 定义一个标记变量 // 要先将字符串拆分成字符数组,之后依次判断 char c[] = str.toCharArray() ; // 将字符串变为字符数组 for(int i=0;i<c.length;i++){ //…
import java.util.* ; // 导入需要的工具包 class DateTime{ // 以后直接通过此类就可以取得日期时间 private Calendar calendar = null ; // 声明一个Calendar对象,取得时间 public DateTime(){ // 构造方法中直接实例化对象 this.calendar = new GregorianCalendar() ; } public String getDate(){ // 得到的是一个日期:格式为:yy…