IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 浅谈java实现桌面小程序 -> 正文阅读

[移动开发]浅谈java实现桌面小程序

一直在用java开发web程序, 从maven-web 至springboot ,但是有时候想写一些单机的小程序,作为2022小的flag.

java开发桌面小程序当然不是很好的选择, 所以抛开

  • 语言的优越性(学习成本)
  • 内存占用问题 (运行成本)
  • 性能问题 (体验感)
  • 打包大小 (空间占用)

一、套壳web实现

在这里插入图片描述

方案一: electron +h5+java

需要1个运行程序(exe) 和1个服务程序(java server) ,
通过restful接口或socket 通信,GUI页面和服务完全解耦,需要学习nodejs 、electron相关知识。

方案二:webview+h5+java

借助JavaFX的webview 实现,静态资源与后台程序打包在一起作为web服务访问,但是webview约等于ie11 (稍微好点),需要考虑h5的兼容性。

方案三:jxbrower+h5+java

jxbrower集成chrome的v8引擎,与方案二类似,但是不用考虑h5的兼容性,需要寻找破解资源。上图为该方案实现

方案四:jcef+h5+java

jcef也是集成chrome的v8引擎,与方案三类似,是开源选择,但是性能与稳定性、文档、简易性不及jxbrower (毕竟商用)

二、swing实现

在这里插入图片描述 如果对比h5来说,如果想实现上图的效果,我觉得需要了解swing的布局、组件、节点、事件 等等,学习成本不小,感兴趣也可以作为选择。
请添加图片描述
gif是我在学习swing中一些示例,皮肤和布局都使用第三方包flatlaf和miglayout

    <dependency>
            <groupId>com.formdev</groupId>
            <artifactId>flatlaf</artifactId>
            <version>0.38</version>
        </dependency>
 <dependency>
            <groupId>com.miglayout</groupId>
            <artifactId>miglayout-swing</artifactId>
            <version>5.2</version>
        </dependency>

JavaFX实现

可以参考xJavaFxTool项目:gitee: xJavaFxTool

图片来自gitee
(图片来自xJavaFxTool)

JavaFX是新一代java的GUI开发技术,追求简单、丰富的样式和3D的突破,如果按照前后端的分离来看,其实view层和controller类的解耦是更符合人们期望的一种方式。
但是我不喜欢fxml, 就和我不喜欢jsp一样(但是有时候不得不这么干)。

还有一些其他的GUI技术,不在此讨论,比如SWT +JFACE(eclipse底层)、AWT (不太了解)。

就像vscode选择electron ,微信选择nw.js,idea选择swing, eclipse选择swt 等等一样,从实际的需求出发选择适合自己的才是重要的,可能某一天vscode会去选择webview2放弃electron, idea放弃了swing ,静静的看待jquery的没落,layui的落幕,拥抱vue react angular 的绽放 ,感受go flutter rust 的变迁。
既然选择就不要去后悔,适合自己的才是最重要的

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:56:30  更:2022-02-06 13:58:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:22:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码