之前写了一篇文章,谈了谈自己对Java的编程领域的看法.
这篇文章想专门说说Java桌面编程的应用领域.欢迎大家讨论
Java是一门适合于企业级应用的语言,它并不适合做个人桌面应用开发,如果你要开发一个游戏/音乐播发器/下载工具/浏览器..等等桌面应用.你最好不要选择Java,因为这样做你可能会遇到两种情况.
1.完全做不出来
2.做出来没人用
Java Swing适合
开发企业级应用的桌面程序.
企业级应用是一个工作环境,用户不会关心程序是如何安装的,不用关心是否占用了我过多的内存这些问题.只要在目标机器上能够稳定运行就可以.企业级应用的程序桌面不需要像游戏一样复杂的图像效果.
由于这样的假设条件,Java Swing做富客户端应用有以下好处:
a.Java程序员不用关心内存的释放问题,大大减少编程的复杂程度.
b.Java的跨平台性.
c.Java丰富的企业级应用支持.
...Java本身的其他优势
哇,看起来Java真是太美好了,但这是在用户接受了假设条件的前提下才可以获得的好处.
Java Swing还可以
做工具类软件
这些工具大多也是工作上使用的,比如IDE/一些分析工具.
如果使用Java做工具,那么我们需要安装JDK,即使软件自带了JRE,它也会比同类的软件体积要大,并且会占用更多的内存.
这些需要付出的代价对于一个非Java程序员来说,必然是会考虑的要素.
当然,工具类软件,我们更关心的是它的功能,即使部署成本和计算机资源占用高一些,只要功能完善我们还是会去选择.
在用Java做工具类软件时,比较重要的一点是Java的跨平台特性.
Java Swing不适合
做个人用户的桌面应用程序
也不适合做游戏
个人桌面应用与企业应用相比有很多不同:
a.个人桌面应用对于软件体积是十分关注的,这一点并不是因为我们的硬盘不够大,而是因为小的软件更容易被下载.一个1mb的软件和一个15mb的软件是对于个人用户来说是有明显区别的.有一个翻译软件叫灵格斯,其中一个非常重要的特性就是小.
Java的Jre6是15.5MB.如果是一个400mb的软件,或许这15mb并不多,但对于一个1-2mb的软件来说,这15mb就很多了.
b.安装的复杂程度,个人用户并不是专家,安装的复杂度,时间长短对于一个软件来说都非常重要.一个安装20秒的软件比一个需要安装1分钟的软件有更强的竞争力.
c.软件的执行速度和计算机资源的占用率,这一点在计算机不断增强的硬件性能上看来,被弱化了一些,但是在个人桌面应用中,往往会打开很多个其他应用,更少的计算机资源占用会使产品获得更强的竞争力.Java产品总是要占用大概80mb的内存.
d.Java对于复杂的高性能的图像编程来说,支持比C++少很多
有一些Java的图形游戏Demo,这些产品看起来更像是在表达一种"我也能"\"我也可以做游戏"这样的声音.而往往看到这些Demo的初学者就会产生错觉.如果你了解了osg,你或许就会觉得Java图形编程与c++的差距.
关于JavaFX
JavaFX前途未卜,Oracle以后是否会继续推行这是不可能从任何人发表的任何言论里得出结果的.
但就目前来看,JavaFX还存在很多问题,它支持的IDE很少,几乎只有NetBeans.
它的Eclipse插件就有很多bug.当然这里NetBeans的用户和text的用户不用来拍砖.
我想说的只是一个事实JavaFX如果连Eclipse插件都不能提供,那它必然会失去很多用户,而且Eclipse插件的issue已经提出了很长时间,却没有人在修正.
从对JavaFX当前的投入来看,JavaFX的前景明显要比Adobe的Flex和MS的silverlight要更加另人担心.MS的 Silverlight有一个很好的Eclipse插件.
关于Flex/JavaFX/Silverlight
我觉得RIA最大的问题还是安全性,因为安全性的要求比较高,所以它们还是比桌面应用多了很多限制,比如cross domain access.这一点对于P2P或者调用第三方组件来说就是很致命的弱点.不过这不是很多RIA应用都需要的特性.如果你的应用需要这样的特性,你就不能选择RIA.
分享到:
相关推荐
org/openjfx/javafx-web
基于SWING+JAVAFX实现的JAVA MP3播放器
* 项目名:Java课程设计——饭卡管理系统(JavaSwing、JavaFX、MySQL) * @author :第四维度 * 创建时间:2021-6-21 * 采用JavaSwing、JavaFX设计UI界面,结合MySQL数据库进行增删改查操作,功能较为完善 * 包含...
linux系统下,可用如下两命令运 行 javafx 的 jar包 export JAVAFX=/home/这里是linux的用户名文件夹/javafx-sdk-18/lib java --module-path $JAVAFX --add-modules javafx.fxml,javafx.controls -jar demo.jar 或都...
对Swing和JavaFX应用程序的简单测试 为测试人员而写。 只需要基本的编码技能。 Automaton是一个框架,可以轻松测试使用Swing和/或JavaFX 2开发的Java GUI。 如果您需要彻底测试Swing / JavaFX UI或仅使UI任务自动...
JAVAFX的贪吃蛇以及可以用Swing打开的JAVAFX的贪吃蛇
* 项目名:Java课程设计——饭卡管理系统(JavaSwing、JavaFX、MySQL) * 创建时间:2021-6-21 * 采用JavaSwing、JavaFX设计UI界面,结合MySQL数据库进行增删改查操作,功能较为完善 * 包含数据库文件、ER图、数据库...
Dispatchers对象,带有Android/Swing/JavaFx 的主调度程序(运行时需要相应的工件)和 Darwin(开箱即用),以及后台协程的默认调度程序; 延迟和产生顶级挂起函数; Flow——带有流生成器和综合操作符集(filter、...
JavaFX Script 语言教程(面向Swing程序员) javafx_script.rarJavaFX Script 语言教程(面向Swing程序员) javafx_script.rarJavaFX Script 语言教程(面向Swing程序员) javafx_script.rar
图标是开发桌面应用程序中非常必要的部分, JavaFX按钮、选择框、复选框等控件提供了graphic子节点来显示图标, 快捷工具栏、状态栏也都有图标的使用, 其它注入显示信息时节点的前面也会使用不同的图标来标明节点...
Java11以后的版本不再集成Javafx,需要单独下载
* 项目名:Java课程设计——饭卡管理系统(JavaSwing、JavaFX、MySQL) * @author :第四维度 * 创建时间:2021-6-21 * 描述:这是一个涉及 MySQL + IDEA + Jdk8 + swing + javaFX 的项目,能实现对数据库的增删...
./gradlew构建-构建JavaFX应用程序 ./gradlew jfxJar-创建可执行的JavaFX-jar ./gradlew jfxNative-创建本机JavaFX捆绑包(将首先运行jfxJar) ./gradlew jfxRun-创建JavaFX-jar并像使用java -jar my-project-jfx....
VB.NET OCR (optical character recognition) and barcode recognition SDK offers a high performance API library for you to equip your Java applications (Java applets, web applications, Swing/JavaFX ...
JavaFx 应用小实例
作了一个例子,使用binding不同的css文件,变换不同的样式。界面比较漂亮。下载完后直接可用netbean6.8打开看效果。
JavaFX是开发Java GUI程序的新框架,取代了Swing和AWT, 用于开发富英特网应用 AWT可以开发简单的用户界面,但不适合开发综合的GUI项 目,AWT容易被特定的平台错误影响 Swing组件使用Java代码在画布上直接绘制,更少...
GMapsFX, Java API用于在JavaFX应用程序中使用 谷歌地图 GMapsFX修正的注意:在macosx的GMapsFX中出现的问题。 ! 纯 JavaFX API允许你在不需要与底层 谷歌地图 JavaScript API交互的情况下向你的JavaFX应用程序添加...
NULL 博文链接:https://weiyongqing.iteye.com/blog/1220470
经过研究摸索终于解决了! 该开发包是解决 JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: ...(myeclipse版本不一样那就搜索EE_5这个目录下找到javaee.jar 覆盖掉就可以了)