- 浏览: 200312 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
kongyumi:
电话18800163600
初学certificate -
kongyumi:
解压密码多少?求告知
初学certificate -
船到桥头自然沉:
初学certificate -
笑海人胜:
...
JavaFX学习之Preloader -
kanjiantaiyang:
引用[img][/img][url][/url][b][/b] ...
security
JavaFX在Application加载的时候提供了Proloader应用,可以展现loading process bar或者others notification。
Main Application
Preloader
若使用NetBeans,在构建Main Application时,便可以选着Preloader程序,运行时则只要运行Main程序即可。
若使用eclipse则需要使用Ant
主要是fx:application,它会帮你把main和preloader联系起来,然后生成jar包。然后执行这个jar包就可以了(最后变成执行jar,这是自己想的,但总感觉和netBeans里有点不同).
Preloader有3个方法可以重载
public void handleStateChangeNotification(StateChangeNotification scn) 总共调用三次,在main启动load,init,start之前。
public void handleProgressNotification(ProgressNotification pn) 二次0和1,全在main load 之前。
public void handleApplicationNotification(PreloaderNotification info) 当main函数里面调用notifyPreloader时才调用。
有了2个stage,则之间通信,可以有2种情况:
一:通过handleStateChangeNotification(StateChangeNotification evt) evt.getApplication获取main Application。一般都是preloader提供一个接口,main实现该接口,从而preloader通过接口可以获取main里面的内容。
二:PreloaderHandoverEvent实现preloaderNotification,然后main把node保存到PreloaderHandoverEvent类中,然后调用notifyPreloader方法,而preloader通过handleApplicationNotification(PreloaderNotification info)获取 final PreloaderHandoverEvent event = (PreloaderHandoverEvent)info;该实现类,然后获取node。
这里有很多javafx的小游戏,一个高手写的
http://lustrezhang.gotoip4.com/fxgame/
这里有个javafx学习的中文网站,我把内容都丢那上面去了。
http://www.jfxee.com/
Main Application
package main; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import preloader.TestPreloader; /** * * @author lq */ public class MainApplication extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Say 'Hello World'"); btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Preloader
package preloader; import javafx.application.Preloader; import javafx.scene.Scene; import javafx.scene.control.ProgressBar; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; /** * Simple Preloader Using the ProgressBar Control * * @author lq */ public class TestPreloader extends Preloader { ProgressBar bar; Stage stage; private Scene createPreloaderScene() { bar = new ProgressBar(); BorderPane p = new BorderPane(); p.setCenter(bar); return new Scene(p, 300, 150); } @Override public void init(){ System.out.println("preloader init"); } @Override public void start(Stage stage) throws Exception { System.out.println("preloader start"); this.stage = stage; stage.setScene(createPreloaderScene()); stage.show(); } @Override public void handleStateChangeNotification(StateChangeNotification scn) { if (scn.getType() == StateChangeNotification.Type.BEFORE_START) { stage.hide(); } } @Override public void handleProgressNotification(ProgressNotification pn) { bar.setProgress(pn.getProgress()); } public static void main(String args[]){ launch(); } }
若使用NetBeans,在构建Main Application时,便可以选着Preloader程序,运行时则只要运行Main程序即可。
若使用eclipse则需要使用Ant
<project name="TestPreloader" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant"> <target name="default"> <taskdef resource="com/sun/javafx/tools/ant/antlib.xml" uri="javafx:com.sun.javafx.tools.ant" classpath=".:C:/Program Files/Java/jdk1.7.0_07/lib/ant-javafx.jar" /> <fx:application id="app-desc" mainClass="main.MainApplication" preloaderClass="preloader.TestPreloader"> </fx:application> <fx:jar destfile="dist/application.jar"> <fx:application refid="app-desc"/> <fileset dir="bin"/> </fx:jar> <java jar="dist/application.jar" fork='true'/> </target> </project>
主要是fx:application,它会帮你把main和preloader联系起来,然后生成jar包。然后执行这个jar包就可以了(最后变成执行jar,这是自己想的,但总感觉和netBeans里有点不同).
Preloader有3个方法可以重载
public void handleStateChangeNotification(StateChangeNotification scn) 总共调用三次,在main启动load,init,start之前。
public void handleProgressNotification(ProgressNotification pn) 二次0和1,全在main load 之前。
public void handleApplicationNotification(PreloaderNotification info) 当main函数里面调用notifyPreloader时才调用。
有了2个stage,则之间通信,可以有2种情况:
一:通过handleStateChangeNotification(StateChangeNotification evt) evt.getApplication获取main Application。一般都是preloader提供一个接口,main实现该接口,从而preloader通过接口可以获取main里面的内容。
二:PreloaderHandoverEvent实现preloaderNotification,然后main把node保存到PreloaderHandoverEvent类中,然后调用notifyPreloader方法,而preloader通过handleApplicationNotification(PreloaderNotification info)获取 final PreloaderHandoverEvent event = (PreloaderHandoverEvent)info;该实现类,然后获取node。
这里有很多javafx的小游戏,一个高手写的
http://lustrezhang.gotoip4.com/fxgame/
这里有个javafx学习的中文网站,我把内容都丢那上面去了。
http://www.jfxee.com/
发表评论
-
JavaFX学习 EventFilter
2013-01-11 10:41 3678EventFilter可以让你在事件捕捉过程中处理一些东 ... -
JavaFX学习 事件Event
2013-01-04 13:54 0常用的时间一般分为鼠标事件和键盘输入事件,看一下这些事件 ... -
JavaFX学习 自定义控件
2013-01-04 14:19 8178Control,Skin,behavior 在java ... -
JavaFX学习 位置计算
2012-12-31 15:22 1301如何得到节点在window中的位置 Point2D p ... -
JavaFX学习之Image
2013-01-11 13:53 7362ImageView and Image ImageVi ... -
JavaFX学习之Concurrent
2012-12-13 16:48 0Service Task public class ... -
JavaFX学习之Geometry
2012-12-13 16:45 0BoundingBox Bounds Dim ... -
JavaFX学习之Canvas
2013-01-15 16:20 4268Canvas and GraphicsContext ... -
JavaFX学习之Input
2012-12-13 16:39 0InputEvent Clipboard and ... -
JavaFX学习之Media
2012-12-13 16:32 0javafx支持视频和音频的播放,可以看media包下的 ... -
JavaFX学习之Paint
2012-12-13 16:29 0Paint Color ImagePatte ... -
JavaFX学习之Chart
2013-01-15 16:01 9294Chart 分piechart 和XYChart 再看看 ... -
JavaFX学习之Transform
2013-01-15 19:11 5640Transform为Node提供仿射变换,如旋转,尺度变 ... -
JavaFX学习之Effect
2013-01-14 15:53 1873Effect 抽象类,所有特殊效果的父类。 Ble ... -
JavaFX学习之Animation
2012-12-13 16:02 0Animation AnimationTimer ... -
JavaFX学习之Stage
2012-12-13 15:55 0Window Stage 刚开始的Stage由平 ... -
JavaFX学习之Web
2013-01-12 16:06 12711PopupFeatures 处理新窗口 WebHi ... -
JavaFX学习之Scene
2012-12-13 15:49 0Node setManaged(boolean va ... -
JavaFX学习之Layout
2013-01-15 16:03 12718Region 继承parent,被 ... -
JavaFX学习之Control
2012-12-13 14:25 10675Control Control类控件通常由Control, ...
相关推荐
本资料集包含了最新的JavaFX学习资源,旨在帮助开发者掌握这一强大的技术,以应对日益增长的跨平台应用需求。 JavaFX的核心特性包括: 1. **丰富的UI组件**:JavaFX提供了一套完整的、易于使用的UI控件,如按钮、...
javaFx 学习--之布局菜单
这个"JavaFX学习之样例8"可能是一个教程或示例集合,用于教授如何使用JavaFX来创建一个特定的图形元素,比如时钟。在这个例子中,我们可能将学习如何利用JavaFX的图形和动画功能来构建一个可交互的模拟时钟。 首先...
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的Java库。它提供了丰富的用户界面组件、强大的图形...通过学习和掌握JavaFX,开发者可以充分利用其丰富的特性,创建出具有吸引力和交互性的应用程序。
1. **JavaFXChina.Net**:该网站是国内知名的 JavaFX 学习资源站点之一,提供大量的教程和技术文档,适合初学者入门以及进阶学习。 - **主要特色**: - **详尽的文档**:涵盖 JavaFX 的各个方面,从基础概念到高级...
JavaFX教程;JavaFX教程;JavaFX教程JavaFX教程;
JavaFX学习曲线日记
这通常是学习JavaFX的第一步,通过这个例子,你可以理解如何启动JavaFX应用、创建控件并响应用户操作。 总之,JavaFX的动态行为主要包括事件处理、属性绑定和样式改变等方面。通过熟练掌握这些技术,开发者可以创建...
javaFx 学习--之组件篇1(边框与布局管理1Label)
在"javaFx 学习--入门示例程序的源码"这个压缩包中,包含了一个名为"helloworld"的文件,这通常是一个初学者接触任何编程语言或库时的第一个示例。 HelloWorld 示例是编程领域的基础,它演示了如何在JavaFX中展示...
javafx语言中文教程,内附代码,有助于学习理解!
JavaFx 的官方入门教材,英文
javafx菜单之多级菜单1
JavaFX2.0之CSS JavaFX是一种新兴的技术,用于制作精美的动态画面。本资源主要介绍JavaFX中的CSS样式设计,用于创建样式表和自定义外观设计。 JavaFX CSS是基于W3C的CSS版本2.1和部分扩展的第三版。JavaFX应用程序...
在“JavaFX+Jfoenix 学习笔记(一)--环境搭建及多款Hello World演示源码”中,我们将主要探讨以下几个知识点: 1. **JavaFX环境搭建**: - 安装Java Development Kit (JDK):JavaFX不再包含在标准JDK中,因此需要...
本文将深入探讨JavaFX的基础知识,包括其核心概念、开发环境的搭建、基本组件的使用,以及如何通过实例来学习和掌握JavaFX。 首先,JavaFX的核心概念主要包括场景(Scene)、舞台(Stage)、节点(Nodes)和布局...
深入学习JavaFX脚本语言,意味着我们将探讨其语法、特性以及如何利用它来构建动态的应用程序。 JavaFX最初引入了一种名为JavaFX Script的专用脚本语言,但后来在JavaFX 2.0中,JavaFX Script被Java API所取代,使得...
如果这个Demo包含图形元素,我们可以学习到如何在JavaFX中绘制和操作2D或3D图形。 媒体支持是JavaFX的另一个亮点,它内置了对音频和视频播放的支持。`javafx.media`包提供了`MediaPlayer`和`MediaView`类,可以轻松...
2. **示例代码**:可能包含`samples`目录,其中提供了使用JavaFX编写的示例应用程序,帮助开发者理解和学习如何使用JavaFX进行开发。 3. **文档**:SDK可能还包括API文档,通常位于`docs`目录下,这对于查阅JavaFX...