- 浏览: 199729 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
kongyumi:
电话18800163600
初学certificate -
kongyumi:
解压密码多少?求告知
初学certificate -
船到桥头自然沉:
初学certificate -
笑海人胜:
...
JavaFX学习之Preloader -
kanjiantaiyang:
引用[img][/img][url][/url][b][/b] ...
security
PopupFeatures 处理新窗口
WebHistory
网页一般都带有历史记录的功能,可以回退,也可以前进,fx用WebHistory处理。
WebView WebEngin
WebView作为一个node用于显示网页内容
WebEngine用于对网页的操作,通过webView获取web引擎
看个demo
这里要注意的是,脚本必须是你网页中存在的。
可以在Application中执行网页中的脚本,那么也可以在网页脚本中执行Application方法
此时在页面可以调用
在网页上右键点击的时候,可以选择在新窗口打开,此时你必须自己设定。
网页是通过WebView显示的,所以当你需要一个新窗口时,你必须弄一个新的webView,并为该webview设置好显示的位置,然后在上面的代码中获取该webview的webengine返回。
发现加载web页面需要一段时期,此时application的一些节点显示出来了,若是想让节点显示和web一起显示,则可以监听webEngine的状态属性。
看个demo:
PromptData
WebEvent
HTMLEditor
WebHistory
网页一般都带有历史记录的功能,可以回退,也可以前进,fx用WebHistory处理。
final WebHistory wh = webEngine.getHistory(); //获取webhistory go(int offset) //跳到相对应的页,一般-1是后退,1是前进 getCurrentIndex() //获取当前页索引,开始页索引为0,点击进入下一页此时为1。
WebView WebEngin
WebView作为一个node用于显示网页内容
WebView webView = new WebView();
WebEngine用于对网页的操作,通过webView获取web引擎
WebEngine webEngine = webView.getEngine();WebEngine的一些方法
webEngine.load(java.lang.String url); //加载一个网页 webEngine.executeScript(java.lang.String script) //执行网页中的脚本语言
看个demo
public void init(Group root){ VBox box = new VBox(); WebView webView = new WebView(); final WebEngine webEngine = webView.getEngine(); webEngine.load("http://forums.oracle.com/forums/"); box.getChildren().add(webView); Button button = new Button("showAll"); button.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent arg0) { webEngine.executeScript("showAll()"); } }); box.getChildren().add(button); root.getChildren().add(box); }
这里要注意的是,脚本必须是你网页中存在的。
可以在Application中执行网页中的脚本,那么也可以在网页脚本中执行Application方法
JSObject win = (JSObject) webEngine.executeScript("window"); 获取js对象 win.setMember("app", new JavaApp()); 然后把应用程序对象设置成为js对象 private class JavaApp { public void exit() { Platform.exit(); } public void login(){ System.out.println("login..."); } }
此时在页面可以调用
<a href="about:blank" onclick="app.exit()">Exit the Application</a>
在网页上右键点击的时候,可以选择在新窗口打开,此时你必须自己设定。
setCreatePopupHandler(Callback<PopupFeatures,WebEngine> handler) //处理弹出窗口。 webEngine.setCreatePopupHandler( new Callback<PopupFeatures, WebEngine>() { @Override public WebEngine call(PopupFeatures config) { return newWebView.getEngine(); } } );
网页是通过WebView显示的,所以当你需要一个新窗口时,你必须弄一个新的webView,并为该webview设置好显示的位置,然后在上面的代码中获取该webview的webengine返回。
发现加载web页面需要一段时期,此时application的一些节点显示出来了,若是想让节点显示和web一起显示,则可以监听webEngine的状态属性。
webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { //添加节点,或者把app注入到网页脚本当中 } } } );
看个demo:
public void init(Group root){ final TabPane tp = new TabPane(); WebView webView = new WebView(); System.out.println(root.getScene()); webView.prefWidthProperty().bind(root.getScene().widthProperty()); webView.prefHeightProperty().bind(root.getScene().heightProperty()); final WebEngine webEngine = webView.getEngine(); webEngine.load("http://forums.oracle.com/forums/"); webEngine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() { @Override public WebEngine call(PopupFeatures arg0) { WebView newWebView = new WebView(); WebEngine newWebEngine = newWebView.getEngine(); Tab tab = new Tab("new Window"); tab.textProperty().bind(newWebEngine.titleProperty()); tab.setContent(newWebView); tp.getTabs().add(tab); return newWebEngine; } }); final Tab tab = new Tab(); tab.textProperty().bind(webEngine.titleProperty()); tab.setContent(webView); // process page loading webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { tp.getTabs().add(tab); } } } ); root.getChildren().add(tp); }
PromptData
WebEvent
HTMLEditor
发表评论
-
JavaFX学习 EventFilter
2013-01-11 10:41 3672EventFilter可以让你在事件捕捉过程中处理一些东 ... -
JavaFX学习 事件Event
2013-01-04 13:54 0常用的时间一般分为鼠标事件和键盘输入事件,看一下这些事件 ... -
JavaFX学习 自定义控件
2013-01-04 14:19 8136Control,Skin,behavior 在java ... -
JavaFX学习 位置计算
2012-12-31 15:22 1273如何得到节点在window中的位置 Point2D p ... -
JavaFX学习之Image
2013-01-11 13:53 7338ImageView 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 4263Canvas 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 9270Chart 分piechart 和XYChart 再看看 ... -
JavaFX学习之Transform
2013-01-15 19:11 5627Transform为Node提供仿射变换,如旋转,尺度变 ... -
JavaFX学习之Effect
2013-01-14 15:53 1842Effect 抽象类,所有特殊效果的父类。 Ble ... -
JavaFX学习之Animation
2012-12-13 16:02 0Animation AnimationTimer ... -
JavaFX学习之Stage
2012-12-13 15:55 0Window Stage 刚开始的Stage由平 ... -
JavaFX学习之Scene
2012-12-13 15:49 0Node setManaged(boolean va ... -
JavaFX学习之Layout
2013-01-15 16:03 12688Region 继承parent,被 ... -
JavaFX学习之Control
2012-12-13 14:25 10665Control Control类控件通常由Control, ... -
JavaFX学习之Shape
2012-12-11 10:48 6130Shape 继承Node 方法 setFill(Pai ...
相关推荐
2. Web启动(Web Start):利用Java Web Start技术,用户可以通过浏览器下载并运行JavaFX应用。 3. 模块化系统:JavaFX 9以后版本集成到Java模块系统中,简化了打包和部署流程。 八、JavaFX与Swing集成 JavaFX可以...
总的来说,这个压缩包资源对于学习和实践全栈Java开发非常有帮助,涵盖了从简单的命令行工具到复杂的Web应用的开发技术,并涉及到优化工具GraalVM。掌握这些知识将使开发者能够灵活应对各种应用场景。
2. **示例代码**:可能包含`samples`目录,其中提供了使用JavaFX编写的示例应用程序,帮助开发者理解和学习如何使用JavaFX进行开发。 3. **文档**:SDK可能还包括API文档,通常位于`docs`目录下,这对于查阅JavaFX...
JavaFX 1.2是该技术的一个早期版本,提供了许多创新特性,旨在简化桌面和Web应用的开发。 在“学习JavaFX 1.2脚本语言”这个主题中,我们将深入探讨以下几个关键知识点: 1. **JavaFX脚本语言**:JavaFX Script是...
JavaFX是Java平台上的一个应用程序框架,用于创建丰富的桌面、移动和Web应用程序。它提供了丰富的图形用户界面(GUI)组件,使得开发者可以构建出交互性强、视觉效果良好的应用。而JFoenix则是一个开源库,它为...
JavaFX是Java平台上的一个强大的富客户端应用开发框架,它为构建桌面、移动和Web应用程序提供了丰富的图形用户界面(GUI)工具集。标题中的"javafx-11.0.2 jar.rar"指的是JavaFX 11.0.2版本的库文件,这些文件被压缩...
3. 网络应用程序:JavaFX 可以用于开发网络应用程序,例如 web 应用程序和 Rich Internet Applications 等。 JavaFX 的主要组件包括: 1. JavaFX SDK:JavaFX 的软件开发套件,提供了 JavaFX 的所有功能和工具。 2...
JavaFX是Java平台上的一个强大的用户界面工具包,用于创建桌面、移动和Web应用程序。它提供了丰富的图形和媒体功能,支持2D和3D渲染、CSS样式以及自定义控件。这个压缩包包含了一些官方提供的JavaFX源码示例,非常...
2. **CSS样式和皮肤化**:JavaFX允许使用CSS来样式化和布局控件,这与Web开发中的CSS语法非常相似,降低了学习曲线,同时提高了应用程序的外观一致性。 3. **动态性和响应性**:JavaFX支持数据绑定和反应式编程,...
JavaFX 是一个用于创建桌面应用、移动应用和Web应用的开放源代码图形用户界面(GUI)工具包。它提供了一套丰富的UI控件、2D和3D图形处理能力,以及媒体播放支持,使得开发者可以构建出具有现代感且交互性强的应用...
使用JavaFX,开发者可以利用CSS样式来定制UI,创建响应式布局,并且可以轻松地集成JavaFX应用程序到Web浏览器中,通过Web Start或HTML5的WebAssembly技术。 在JavaFX 17.0.2中,开发者可以期待更好的模块化支持,这...
这使得开发者可以像设计Web页面一样,为JavaFX应用定义样式。 6. **响应式编程**: JavaFX支持事件驱动编程,允许程序响应用户的交互,如点击按钮、改变选择等。 7. **2D和3D图形**: JavaFX提供了强大的2D和3D图形...
总之,"javafx-文档.zip"是一个宝贵的资源,对于想要学习和精通JavaFX桌面应用开发的程序员来说,是不可或缺的学习材料。通过深入阅读和实践其中的内容,开发者将能够利用JavaFX的强大功能创建出功能丰富、用户体验...
JavaFX应用可以无缝地在桌面或者Web浏览器中运行 JavaFX为设备提供多点支持,适用于开发平板或智能手机应 用 JavaFX具有内建的2D、3D和动画支持,以及视频和音频的 回放功能,可以作为一个应用独立运行或者在浏览器中...
3. **CSS样式和皮肤**:JavaFX应用可以使用CSS来定义组件的外观,实现类似Web页面的样式控制。 4. **媒体支持**:内建的媒体API支持音频和视频播放,使得多媒体应用的开发变得简单。 5. **事件处理**:JavaFX提供...
JavaFX2.0是JavaFX的重大更新,与之前的1.3版本存在许多不...通过学习和掌握JavaFX2.0的开发技巧,你可以创建出具有高度交互性和吸引力的用户界面。无论是初学者还是有经验的开发者,JavaFX2.0都值得深入研究和探索。
此外,JavaFX还支持Web启动(WebStart)和打包为桌面应用程序安装程序。 总之,JavaFX 是一个功能强大的GUI开发平台,尤其适用于那些希望创建富媒体、动画效果丰富的应用程序的开发者。通过学习和掌握JavaFX,...
JavaFX 2.0 是一个强大的富互联网应用程序(RIA)平台,用于构建具有美观图形界面的应用程序。在JavaFX 2.0中,FXML(FXML Language...对于希望提升JavaFX应用开发技能的开发者来说,深入学习和掌握FXML是必不可少的。
JavaFX是Oracle公司推出的一种用于构建富客户端应用的Java编程框架,主要针对桌面应用程序和Web浏览器插件。它提供了一套丰富的用户界面组件和强大的图形及媒体支持,旨在简化开发复杂的用户界面。JavaFX 1.0是这个...