第一篇 开始学习JavaFX
前言
关于本教程
前言这一节将会对本教程进行概述,并且会描述本文档的可用性特征以及本教程中用到的惯例。
本教程由三篇文档组成,它们之前都随着JavaFX 2.x的文档集一同发布了:《JavaFX概览(JavaFX Overview)》、《JavaFX架构(JavaFX Architecture)》和《开始学习JavaFX(Getting Started with JavaFX)》。汇编后的内容已经进行改进,其中包括了关于随JavaSE8发布的JavaFX新特性的更新。本文档包括如下几部分:
● 什么是JavaFX
● 开始学习JavaFX样例程序
每一部分都包含一些章节向你介绍JavaFX技术,并带你学习如何将其使用到你的应用程序开发中。
相关文档
有何新特性
本章对JavaSE 8中JavaFX组件的新特性和重大产品改变进行了概述。
● JavaFX应用程序的默认主题是新设计的Modena主题。详见“关键特性”一节中的Modena主题部分。
● 已经加入了对HTML5的支持。详见“向JavaFX应用程序中添加HTML内容”相关章节。
● 新添加的SwingNode类改进了与Swing的互操作性。参考“在JavaFX应用程序中嵌入Swing内容”相关章节。
● 新的内置UI控件,DatePicker和TableView,已经可用。参考《使用JavaFX UI控件》一文来获得更多信息。
● 3D图形库被改进了,增加了一些新的API类。参考“关键特性”一节中的3D图形特性部分和“开始使用JavaFX 3D图形”章节来获得更多信息。
● print包现在是可用的,并且提供了公开的JavaFX打印API
● 加入了富本文支持
● 对Hi-DPI显示的支持已经变得可用了
● CSS样式类变成了公开API
● 引入了调度服务类
第一部分 什么是JavaFX
第一部分包括如下章节:
第二部分 开始学习JavaFX样例程序
这一部分包括了一系列样例程序,它们可以帮助你了解一般的JavaFX编程任务,包括如何使用布局、控件、样式表、FXML和视觉效果。
资源文件
打赏一下
支付宝
微信
现在有个问题,需要请教
1.创建一个表格
2.表格中每一行 都是一个继承Task的对象
3.删除表格中的一行,但是内存中的对象实例并不会减少
4.在没有继承Task的时候,删除表格中的一行,内存中的实例减少了
5.继承Task,是为了实现进度条
不知道怎么解决这种内存泄漏啊?
使用了FXML,如何通过FXML传递参数。如何在FXMLLoader的时候将Stage传递给Controller对象
在loader.load()之后获取XXController对象,然后把Stage应用传给Controller:XXController xxCtrl=loader.getController();xxCtrl.setStage(primaryStage);//这方法要在XXController中自己定义。加载FXML文件的操作一般放在主程序中,这样好传递Stage给其他Controller
这个问题困扰我很长时间,现在终于解决了 我直接把代码发给你参考第一步 新建3个文件 PassParamMain.javaPassParamController.javaPassParam.fxml第二步 源代码======================================public class PassParamMain extends Application { @Override public void start(Stage stage) throws Exception { //使用这种方法就无法传参了 建议使用下面的方法// Parent root = FXMLLoader.load(getClass().getResource(“/fxml/PassParam.fxml”)); FXMLLoader loader = new FXMLLoader(getClass().getResource(“/fxml/PassParam.fxml”)); Parent root = loader.load(); Scene scene = new Scene(root,300,250, Color.WHITE); PassParamController passParamController = loader.getController(); passParamController.setUserData(“www.magicalcoder.com”);//关键在这 userData方法是我自定义的 stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); }}========================================public class PassParamController implements Initializable { private Object userData; public Object getUserData() { return userData; } public void setUserData(Object userData) { this.userData = userData; } @Override public void initialize(URL location, ResourceBundle resources) { System.out.println(userData);//这里肯定是null 因为load的时候,这个方法就执行了 那时还没setUserData } @FXML private Button button; @FXML public void click(){ System.out.println(userData);//这个肯定就有内容了 }}====================================<?import javafx.scene.control.Button?><?import javafx.scene.control.Label?><?import javafx.scene.layout.AnchorPane?> 第三步 自己看代码尝试吧 肯定可以的
不能发标签代码 我用转义了下
请问一下,对于目前javafx的布局方式有没有其他的类型,本人感觉fxml的布局很繁琐,似乎刻意模仿了微软的xaml,不如android的xml更加简练清晰,有没有类似android布局或者html那种div布局的方式?
觉着fxml布局繁琐,不会是手动写fxml文件吧?用Scene Builder 布局,可以拖控件,也不是很麻烦吧。
对,手写党,不喜欢拖拽,手抖,感觉不受自己控制^_^
fxml是针对javafx开发的类xml语言么??javafx没有像Qt用xml开发界面么??还有问下,scene builder在哪里下载??我怎么在oracle网上没找到??
就是xml的一种,xml可以被定制成各种ml,比如fxml,schema这些,有用xml开发界面的,不过很难用,用xml开发界面的不管是javafx还是android,都很垃圾
两种方法:1、嵌在代码里;2、FXML。
我用spring 集成了一个javafx的开发框架 下载地址 http://www.magicalcoder.com 欢迎学习交流 直接注解后 在哪里都可以获取controller 的实体 spring 你懂的
真棒,JavaFX官方提供了spring、guice等的支持机制,你用得很好!
每篇的源代码可以从哪里统一下载啊?我在甲骨文官网上写的示例文件里怎么没有这些啊,感谢感谢!
网站顶部导航”JavaFX中文文档”中的子菜单,每个页面的尾部都有相关资源下载。
网站内容不错。要是背景和文字优化一下就更好了,文字字体较小,颜色较浅和背景色看起来眼睛好累。
本人初学者,请问下怎么建立本地缓存呢,有具体案例吗?另外哪里有复杂一点的开源项目可供学习的,github上没找到多少有价值的