总体来说Swing更稳定,资料更丰富, JavaFX更强大:
一:JavaFX设计思路比较好, 界面和控制逻辑分开, 类似于网页,方便程序员和美术一起协作. 也方便修改.
FXML文件类似于html ,里面放的是 控件和布局
css 文件 就几乎完全一样了, 里面存放的样式 ,用于修饰 控件的外观. 比如换肤功能,只需要切换一下css文件即可
Controller.java文件, 类似于JavaScript ,主要用于行为的控制, 比如点击按钮后的响应等
二:JavaFX组件更丰富 .比如DatePicker,TreeTableView,Pagination,HTMLEditor,ProgressIndicator 等等..特别是WebView 支持html5
三: JavaFX 可以很简单的实现3D效果, 动画, 特效等,
四: JavaFX 支持属性的绑定, 可以更方便的把事件和界面联系在一起,比如 滑块的值,和正方形的边长进行绑定,这样拉动滑块,就可以自动改变正方形的变长, 非常的简洁
五: JavaFX 有原生图表,并且比较美观
六: JavaFX 对多媒体提供了支持, 播放音乐,视频 也是很简单的
当然JavaFX 也还是存在一些问题的,
Swing资料非常丰富, 而JavaFX资料相对较少. Swing可以使用纯Java开发, JavaFX 还需要了解下css , xml 等,学习成本稍高
JavaFX的可视化开发工具SceneBuilder ,个人觉得还不太稳定
JavaFX的异常处理机制不太完美,很多时候抛出的异常不能准确定位, debug需要耗费一些时间.
在JavaFX的WebView中通过JavaScript回调Java的程序,可以通过JSObject.setMember的方法来实现。该方法可以通过JavaScript向上层访问Java代码,具体请看一下示例。Java代码先建立一个新的名为“app”的JavaScript对象。该对象哦呢共有一个公共成员,及exit方法。public class JavaApplication { public void exit() { Platform.exit() } }JSObject window = (JSObject) webEngine.executeScript("window") window.setMember("app", new JavaApplication())
这样之后,你就可以在HTML页面内通过app对象来访问类中的方法:
<a href="" onclick="app.exit()">Click here to exit application</a>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)