javafx是什么

javafx是什么,第1张

什么是 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 22 以后,JavaFX 已经集成在 JRE 7 和 JDK 7 以及以后的 Java 版本中了。因为 JDK

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

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

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

主要特性

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

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 运行时。应用程序发布后,可以在 *** 作系统本地安装,获得 *** 作系统一致的安装和加载体验。

使用SingleSelectionModel:

import javafxscene;

import javafxscenecontrol;

import javafxstageStage;

import javafxapplicationApplication;

import javafxcollections;

public class FXComboExample extends Application {

    public static void main(String[] args) {

        launch(args);

    }

    @Override public void start(Stage stage){

        stagesetTitle("FX ComboBox Example");

        Scene scene = new Scene(new Group(), 400, 300);

        ObservableList<String> options = FXCollectionsobservableArrayList("Option 1","Option 2","Option 3");

        ComboBox<String> combo = new ComboBox<>(options);

        combogetSelectionModel()select(0); // [0, optionssize())

        Group root = (Group)scenegetRoot();

        rootgetChildren()add(combo);

        stagesetScene(scene);

        stageshow();

    }

}

JavaFX API详解之Window

其中Window类可理解成一个窗体,用于存放Scene,并与用户 *** 作。一般window作为窗体,都用其子类Stage和PopupWindow。

看一下Window作为窗体的顶级类包含的一些共同属性

eventDispatcher setEventDispatcher(EventDispatcher value)

focused: 焦点集中 setFocused(boolean)设置

x y width height: 位置及大小 setX(double),setY(double),setWidth(double),setHeight(double) 设置

onCloseRequest 关闭Window事件 setOnCloseRequest(EventHandler)

onHidden 隐藏事件 setOnHidden(EventHandler)

onHiding 隐藏事件,优先于OnHidden setOnHiding(EventHandler)

onShowing 显示事件 setOnShowing(EventHandler)

onShown 显示事件,在OnShowing之后 setOnShown(EventHandler)

opacity 透明 setOpacity(double) 值为0到1

scene 设置场景 setScene(Scene)

showing 是否是显示状态 isShowing()

Window的一些方法:

addEventFilter(EventType eventType, EventHandler eventFilter) 添加事件过滤

removeEventFilter(EventType eventType, EventHandler eventFilter)

addEventHandler(EventType eventType, EventHandler eventHandler) 添加事件

removeEventHandler(EventType eventType, EventHandler eventHandler)

buildEventDispatchChain(EventDispatchChain tail)

centerOnScreen() 使Window显示中间

hide() 隐藏 实际就是关闭

show() 保护类型 显示window

requestFocus() 要求焦点集中

sizeToScene() 使Window的大小匹配它Scene的大小。如果你没有设置Window大小的话,那么就是刚好匹配的(匹配不等于相等了,window始终要大Scene一些)。若果你设置了window大小,在调用该方法,则会改变window的大小以匹配Scene大小。 最好的例子是,你设置window大小,而不设置Scene大小,再调用该方法。

fireEvent(Event event) 调用指定的事件

Stage作为顶级容器,其主Stage由系统创建。额外的可由应用程序创建。

fullScreen 是否全屏,该属性类型为ReadOnly,不可绑定。 setFullScreen(boolean) 虽然是全屏 但是width,height等属性值仍不变,若在全屏的时候改变这些值,返回原来状态的时候,使用改变后的值。

iconified 是否最小化 setIconified(boolean)

resizable 设置大小是否变化 setResizable(boolean) 为true则不能拉动stage的大小

前面的日期不能大于后面的日期且两个日期都不能大于合同有效期

两个日期的日期格式必须相同 。

2$dp$ 相当于 documentgetElementById 函数 那么为什么里面的 ' 使用 \' 呢 那是因为 " 和 ' 都被外围的函数使用了,故使用转义符 \ ,否则会提示JS语法错误 所以您在其他地方使用时注意把 \' 改成 " 或者 ' 来使用。

3#F{$dp$D(\'d4312\')||\'2020-10-01\'} 表示当 d4312 为空时, 采用 2020-10-01 的值作为最大值 。

JavaFX主要用途 : C/S架构, 小游戏, 等,传统的GUI图形界面能做的, JavaFX基本都能胜任并且还对网络支持良好, 比如WebView,HTMLEditor

JavaFX 优势如下:

界面默认皮肤,美观, 更具现代化的风格, awt/swing的默认外观有点老土

组件更具丰富 日期选择器, HTML编辑组件, 网页浏览组件(WebView) 等, 比awt/swing的组件丰富多了

支持 动画,特效,3D 完成酷炫的效果, 只需要简单的代码即可实现

原生的图表组件, 原生图表组件美观,且可以陪和动画和特效, 完成动态的拉风图表效果

多媒体的支持,播放音乐和视频流畅

支持属性的绑定, 比如把圆的大小和滑块的值绑定在一起, 拉动滑块即可改变圆的大小 无需过多代码,简洁

和Web类似 JavaFX 也可以使用3层架构进行开发方便美术人员参与界面的设计

HTML------------->FXML :结构 (美术人员)

CSS--------------->CSS: 外观    (美术人员)

JavaScript-------->Controllerjava : 行为 (开发人员)

用antd 的form给DatePicker 设置值时报错,出现valuelocale is not a function,

想了一下应该是moment对象的locale方法,他把value当成一个moment对象,我实际上设置的值是字符串"2019-11-01 11:22:22" 类似这样的时间字符串,所以要在表单的setFieldsValue中,

把值改成moment("2019-11-01 11:22:22")就OK了

以上就是关于javafx是什么全部的内容,包括:javafx是什么、JAVAFX中 如何设置下拉框的默认值、javaFX调用windows应用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9806019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存