javafxwebview写js,javafx开发

本文目录一览:

JavaFX文档什么是JavaFX

什么是 JavaFX ?

JavaFX 包含了一些列图形和媒体包,允许程序员设计、创建、测试、调试、和部署富客户端应用并且保持跨平台的操作一致性。

JavaFX 应用程序

JavaFX 应用程序由 Java API 编写,可以调用任何 Java API 包。例如,可以调用 Java API 访问本地操作系统,并且与服务器进行连接。

JavaFX 的外观可以自定义。层叠样式表(CSS)将应用的外观与功能分离,让程序员可以更专注于编码。美工可以简单地通过 CSS 来自定义应用程序的外观。

如果你有 Web 设计的背景,或者你想将 UI 和后台逻辑分离,那么你还可以将 UI 放入到 FXML 标记语言中,用 Java

编写业务逻辑。如果你只想编码,那么可以将编写 UI 的工作交给 JavaFX Scene Builder。在支持 JavaFX

的集成开发环境(IDE)中,可以使用 JavaFX Scene Builder 来编写 FXML 标记语言。

可用性

从 JavaFX 2.2 以后,JavaFX 已经集成在 JRE 7 和 JDK 7 以及以后的 Java 版本中了。因为 JDK

可以很好地运行在主流桌面系统上(Windows, Mac OS X, and Linux),因此 JavaFX

也可以运行在这些主流的桌面系统上。跨平台兼容性,可以让 JavaFX 的开发者和用户得到一致的体验。

在 JDK 的下载页面,可以获取 JavaFX 例子的 Zip 包。这些例子应用程序提供了很多代码来演示如何使用 JavaFX。

主要特性

JavaFX 2.2 和之后的版本都包含以下主要特性:

Java API

JavaFX 是一个 Java 包,由 Java 类和 Java 接口等原始的 Java 代码编写而成。这些 API 在设计上可以很友好的替代为 Java VM 语言,例如 JRuby 或 Scala。

FXML and Scene Builder

FXML 是基于 XML 的标记语言,用来创建 JavaFX UI。设计者可以直接编写 FXML 或者使用 IDE 的 Scence Builder 来编写 FXML。

WebView

Web 组件可以使用 WebKitHTML 技术将 Web 页面嵌入到 JavaFX 应用程序中。在 WebView 中运行的

JavaScript 可以调用 Java API,并且 Java API 也可以调用 WebView 中运行的 JavaScript。

Swing 集成

旧有的 Swing 应用程序可以更行 JavaFX 的新特性,比如丰富的图形媒体播放功能和嵌入 Web 页面的功能。

丰富的自有控件和CSS

JavaFX 提供了桌面应用程序需要用到的主要控件。并且控件的外观可以使用标准的 Web CSS 来进行控制。

画布(Canvas)API

Canvas API 允许在可以包含一个作图元素的 JavaFX scene 直接绘制图形。

支持多点触控

基于平台的底层能力,JavaFX 支持多点触控功能。

硬件加速的图形通道

JavaFX 图形渲染基于 Prism。如果使用了支持 Prism 的显卡或 GPU,JavaFX 可以很快的进行平滑渲染。如果系统不支持 Prism,那么默认值将会变为 Java 2D。

高性能的媒体引擎

媒体通道支持 Web 多媒体内容的播放,基于 GStreamer 媒体框架,提供了稳定的、低延迟的媒体播放框架。

自包含的应用程序部署模式

自包含的应用程序,可以包含所有的应用程序资源、Java 运行时以及 JavaFX 运行时。应用程序发布后,可以在操作系统本地安装,获得操作系统一致的安装和加载体验。

java浏览器的开发html显示异常,一定要内嵌浏览器吗

java浏览器开发,其实很简单, 使用JavaFX的WebView组件即可.(支持html5); 也可以在swing里使用JFXPanel然后添加WebView;

效果图如下

参考代码如下(java8+win10 x64 编写,测试)

import javafx.application.Application;

import javafx.concurrent.Worker.State;

import javafx.geometry.Insets;

import javafx.scene.Scene;

import javafx.scene.control.*;

import javafx.scene.layout.*;

import javafx.scene.web.*;

import javafx.stage.Stage;

public class WebViewTest extends Application {

public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage primaryStage) throws Exception {

//顶部

HBox hbox=new HBox(8);

Label labeAddr=new Label(“地址”);

TextField tfAddr = new TextField();

tfAddr.setMinWidth(500);

tfAddr.setText(“”);

Button btnGo = new Button(“Go转到”);

Button btnGoBack=new Button(“-“);

Button btnH=new Button(“-“);

TextField tfSerch = new TextField();

Button btnSerch= new Button(“捜”);

hbox.getChildren().addAll(labeAddr,tfAddr,btnGoBack,btnH,btnGo,tfSerch,btnSerch);

hbox.setPadding(new Insets(5));

//中间

WebView wv = new WebView();

WebEngine we = wv.getEngine();

we.getLoadWorker().stateProperty().addListener((ob, ov, nv) – {

if(nv==State.SCHEDULED) {

tfAddr.setText(we.getLocation());//

}

});

//底部

Label labelBottom = new Label();

labelBottom.textProperty().bind(we.getLoadWorker().messageProperty());//底下的信息显示

BorderPane root = new BorderPane();

root.setTop(hbox);

root.setCenter(wv);

root.setBottom(labelBottom);

Scene scene = new Scene(root, 900, 600);

primaryStage.setTitle(“JavaFX 雪飞潇潇 web浏览器”);

primaryStage.setScene(scene);

primaryStage.show();

btnGo.setOnAction(e – {

we.load(tfAddr.getText().trim());

});

btnGoBack.setOnAction(e-{

we.executeScript(“history.back()”);//执行JavaScript,后退

});

btnH.setOnAction(e-{

we.executeScript(“history.forward()”);//执行JavaScript,前进

});

//搜索

btnSerch.setOnAction(e-{

we.load(“”+tfSerch.getText());

});

}

}

如何在JavaFX的WebView中通过JavaScript回调Java的程序

在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

这就相当与一个JavaScript和Java之间的桥梁。

javafx webview js交互问题

1、如果html文件在jar包内,就是在classpath就这样加载

webView.getEngine().load(WebViewStyle.class.getResource(“/com/html/ScriptToJava.html”).toExternalForm());

2、如果html文件在项目之外

File file = new File(“Resources/Html/Chat/show/show.html”);

String absolutePath = file.getAbsolutePath();

absolutePath = absolutePath.replace(“\\”, “/”);

if (absolutePath.startsWith(“/”)) {

webView.getEngine().load(“file:” + absolutePath);

}else {

webView.getEngine().load(“file:/” + absolutePath);

}

3、js调用Java对象

(1)、Java class需要是public

(2)提交实例化java对象和页面加载完再设置

(3)调用

java做一些小游戏需要学什么

Java做这些小游戏, 可以使用下面几种Java自带的图形界面框架

Awt 适合内存较小, 配置较低的嵌入式系统等,组件较少, 性能好,资源消耗低.

Swing 适合PC等, 组件较丰富, 内存占用较大, 但是跨平台性优越

JavaFX 这个是比较强大的框架了,组件比Swing更丰富,比如添加了 日期选择组件, WebView组件, 还支持3D和 动画. 并且多多媒体支持良好. 但是相关资料比Swing等少

既然学过Java Web 那么对网页编程还是有了解吧,  HTML+CSS+JS 也可以开发出小游戏,浏览器可以显示,  放入JavaFX的WebView组件也可以显示出来

推荐使用JavaFX 或者 Web ,因为这两者都很好做到了分离. JavaFX也可以分离出FXML文件,CSS文件,Java文件. 当然也可以采用最稳妥的Swing来开发,毕竟Swing的图书教程很多.

推荐书籍

Java 2D游戏编程入门  Java游戏编程原理与实践教程

JavaFX 游戏程式设计 第三版

其实游戏算法都一样, 在Swing上好了弄透彻了, 也可以轻松移植到JavaFX或者网页上

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/200152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-05 14:03
下一篇 2024-12-05 14:03

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • JS图片沿着SVG路径移动实现方法

    本文将为大家详细介绍如何使用JS实现图片沿着SVG路径移动的效果,包括路径制作、路径效果、以及实现代码等内容。 一、路径制作 路径的制作,我们需要使用到SVG,SVG是可缩放矢量图…

    编程 2025-04-27
  • JFXtras样式——美化JavaFX应用的必备神器

    本文将从多个方面对JFXtras样式进行详细的阐述,教你如何使用JFXtras样式来美化你的JavaFX应用。无需任何前置知识,让我们一步步来了解。 一、简介 JFXtras是一个…

    编程 2025-04-27
  • 如何使用JS调用Python脚本

    本文将详细介绍通过JS调用Python脚本的方法,包括使用Node.js、Python shell、child_process等三种方法,以及在Web应用中的应用。 一、使用Nod…

    编程 2025-04-27
  • 如何反混淆美团slider.js

    本文将从多个方面详细阐述如何反混淆美团slider.js。在开始之前,需要明确的是,混淆是一种保护JavaScript代码的方法,其目的是使代码难以理解和修改。因此,在进行反混淆操…

    编程 2025-04-27
  • Python要学JS吗?

    Python和JavaScript都是非常受欢迎的编程语言。然而,你可能会问,既然我已经学了Python,是不是也需要学一下JS呢?在本文中,我们将围绕这个问题进行讨论,并从多个角…

    编程 2025-04-27
  • 解决js ajax post 419问题

    对于使用ajax post请求时出现的419问题,我们需要进行以下几个方面的阐述,包括返回码的含义、可能出现的情况、解决方案等内容。 一、解析419返回码 419返回码表示用户超时…

    编程 2025-04-27

发表回复

登录后才能评论