JavaFX | 初识JavaFX的基础概念

目录

JavaFX概念

JavaFX组成结构

JavaFX使用场景

JavaFX常见类

1. Application类

2. Scene类

3.  Scene的根节点Parent


JavaFX概念

JavaFX是一个Java库,可以使用它开发富互联网应用程序。使用此库编写的应用程序可以跨多个平台一致运行。使用JavaFX开发的应用程序可以在各种设备上运行,如台式计算机,手机,电视,平板电脑等。这也是我决定使用JavaFX的原因,知识储备太少了,没有其他选择呜呜呜......

要使用Java编程语言开发GUI应用程序,程序员依赖于诸如高级窗口工具包(AWT)和Swings之类的库。在JavaFX出现之后,这些Java程序开发就可以有效地利用丰富的类库来开发GUI应用程序。

JavaFX组成结构

  • 窗体(javaFX2.0窗体(Stage)分析及使用)
  • 场景(javaFX2.0场景(Scene)分析及使用)
  • 布局
  • UI组件
  • 2D/3D图形系统(windows vista以下使用directx 9.0,windows7使用directx 11.0,macos/linux使用opengl)
  • 多媒体(音视频)
  • 视觉特效
  • web组件(内置基于webkit内核的浏览器,支持html5,且支持javascript脚本与java互相调用)
  • css层叠样式表

JavaFX使用场景

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

JavaFX常见类

1. Application类

JavaFX应用程序的入口点是Application类,Application的子类是Preloader。

无论何时启动应用程序,JavaFX运行时都按顺序执行以下操作:

  • 构造指定的Application类的实例
  • 调用init()方法
  • 调用start(javafx.stage.Stage)方法
  • 等待应用程序完成,发生以下任一情况时:
    1. 该应用程序调用Platform.exit()
    2. 最后一个窗口已关闭,Platform上的implicitExit属性为true
    3. 调用stop() 方法(请注意,start方法是抽象的,必须被覆盖。 init和stop方法可以不具体的实现。)
    4. 调用Platform.exit() 是明确终止JavaFX应用程序的首选方式。直接调用System.exit(int)是一个可以接受的替代方法,但不允许Application stop() 结束JavaFx程序。
    5. 在FX工具包终止或ShutdownHook之后,即在stop()方法返回或调用System.exit(int)之后,JavaFX应用程序不应尝试使用JavaFX。
  • 通过从init()方法调用getParameters()方法,或调用init方法后的任何时间,可以使用应用程序参数。

2. Scene类

JavaFX Scene类是场景图中所有内容的容器,填充属性指定场景的背景。
应用程序必须通过设置根属性来指定场景图的根节点。如果使用组作为根,则场景图的内容将被场景的宽度和高度剪切,并且改变为场景的大小(如果用户调整舞台大小)将不会改变场景图的布局。如果一个可调整大小的节点(将“区域”或“控件”设置为根,则根的大小将跟踪场景的大小,从而根据需要将内容中继出来。场景的大小可以在应用程序构造期间初始化。如果没有指定大小,场景将根据其内容的首选大小自动计算其初始大小。如果仅指定了一个维度,则使用指定的维度来计算另一个维度,该范围涉及根的内容偏差。

  • depthBuffer和antiAliasing标志是条件特征。使用各自的默认值:false和SceneAntialiasing.DISABLED。
  • 默认头灯将被添加到包含一个或多个Shape3D节点但没有光节点的场景中。该光源是位于相机位置的Color.WHITE PointLight。
  • 必须在JavaFX应用程序线程上构建和修改场景对象。

3.  Scene的根节点Parent

它的派生类有以下:

  • Group,Region(子类:Axis(子类:CategoryAxis, ValueAxis), Chart(子类:PieChart, XYChart), Control(子类:Accordion, ButtonBar, ChoiceBox, ComboBoxBase, HTMLEditor, Labeled, ListView, MenuBar, Pagination, ProgressIndicator, ScrollBar, ScrollPane, Separator, Slider, Spinner, SplitPane, TableView, TabPane, TextInputControl, ToolBar, TreeTableView, TreeView), Pane(子类:AnchorPane, BorderPane, DialogPane, FlowPane, GridPane, HBox, PopupControl.CSSBridge, StackPane, TextFlow, TilePane, VBox)),WebView(子类:)
  • 公共抽象类Parent

扩展Node在场景图中具有子节点的所有节点的基类。
该类处理所有分层场景图操作,包括添加/删除子节点,标记用于布局和渲染的分支,采摘,边界计算以及对每个脉冲执行布局传递。

参考博文链接:

https://blog.csdn.net/weixin_30954265/article/details/95118834

http://www.javafxchina.net/blog/2015/08/javafx-scene-graph/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值