- 浏览: 197281 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
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 3633EventFilter可以让你在事件捕捉过程中处理一些东 ... -
JavaFX学习 事件Event
2013-01-04 13:54 0常用的时间一般分为鼠标事件和键盘输入事件,看一下这些事件 ... -
JavaFX学习 自定义控件
2013-01-04 14:19 7990Control,Skin,behavior 在java ... -
JavaFX学习 位置计算
2012-12-31 15:22 1217如何得到节点在window中的位置 Point2D p ... -
JavaFX学习之Image
2013-01-11 13:53 7279ImageView 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 4217Canvas 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 9209Chart 分piechart 和XYChart 再看看 ... -
JavaFX学习之Transform
2013-01-15 19:11 5548Transform为Node提供仿射变换,如旋转,尺度变 ... -
JavaFX学习之Effect
2013-01-14 15:53 1795Effect 抽象类,所有特殊效果的父类。 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 12626Region 继承parent,被 ... -
JavaFX学习之Control
2012-12-13 14:25 10573Control Control类控件通常由Control, ... -
JavaFX学习之Shape
2012-12-11 10:48 6070Shape 继承Node 方法 setFill(Pai ...
相关推荐
JavaFX应用可以无缝地在桌面或者Web浏览器中运行 JavaFX为设备提供多点支持,适用于开发平板或智能手机应 用 JavaFX具有内建的2D、3D和动画支持,以及视频和音频的 回放功能,可以作为一个应用独立运行或者在浏览器中...
有需要使用java开发客户端的,可使用该项目,该项目使用javafx实现用web技术开发客户端,该例子仅供参考学习使用(注:由于javafx已经更新本人并没有去了解新版本的javafx的使用,这个例子只举有参考作用,如果发现...
使用JavaFX 9和Java 9平台创建媒体丰富的客户端应用程序。学习如何为移动设备、桌面PC甚至网络创建基于GUI的应用程序.将音频和视频等媒体整合到您的应用程序中。与硬件设备的接口,如Arduino和Leap Motion。响应手势...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
带有JavaFX的PDF编辑器在本指南中,您将学习如何在JAVA中构建PDF编辑器。 当我帮助我的爷爷向税务局提交申报单时,我想到了这个主意,而不是每年一次又一次地填写表格,而是用从PDF到DOC的两个字段进行更改。 这可能...
基于STM32、ESP8266、PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#、单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备、LInux、IOS...
第一个学习JavaFX 8的个人项目。 Webstart构建 $ javapackager -createjar -appclass net.eseb.jfxttt.Main -srcdir bin -outdir compiled -outfile jfxttt -v -manifestAttrs "Application-Name=JFXTTT,Created-By=...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
JavaFX的超集:无需学习新的UI API 现实世界中的游戏开发技术:实体组件,内插动画,粒子 游戏可以轻松打包到单个可执行文件.jar或本机映像中 适用于: 任何2D游戏(侧滚动/平台游戏/街机/ RPG) 任何具有复杂UI...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
它是在JavaFX之上用Groovy和Java编写的,并且具有以下功能: 从各种来源读取数据,例如文件,程序和各种数据库。 以强大的方式转换数据。 通过SMILE和R集成将强大的机器学习应用于数据。 以50多种不同方式可视...
Java课程是一种教授学生如何使用...图形用户界面(GUI): 学习使用图形库(如Swing或JavaFX)创建桌面应用程序的用户界面。 网络编程: 学习如何使用Java编写网络应用程序,包括客户端-服务器通信和Web应用程序开发。
一、课程简介 『Java学习指南系列』的第21篇教程 ,MyBatis 篇...〖Java学习指南系列〗:包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗:包
Java提供丰富的图形界面工具包,如Swing和JavaFX,使GIS应用程序能够实现直观且用户友好一种跨的界面。这有助于用户更轻松地浏览、查询和分析地理数据,提高用户体验和操作效率。 3. 开发工具和框架支持 Java拥有...
JavaFX:富客户端平台,创建后使已经了解Java技术的开发人员可以在桌面,Web和移动应用程序中创建复杂的图形界面; JPA:高级API(Java技术的标准),用于定义关系对象映射(ORM); Hibernate:JPA提供程序,...
Liang使用JavaFX进行Java GUI编程,这不仅是因为JavaFX对于新的Java程序员来说更容易学习和使用,而且因为它已取代Swing作为新的GUI工具,用于在台式计算机上开发跨平台的Internet应用程序, JavaFX还为讲师提供了...
它使Java Web开发人员能够编写,打包和交付桌面应用程序,而无需学习任何桌面GUI API(Swing,SWT,JavaFX等)。 任何标准的Java Web应用程序都可以在几分钟之内打包和交付为桌面应用程序(通过JWebDesktop)。 ...