JavaFx的第一个程序

一、概述

JavaFX是由甲骨文公司推出的一系列的产品和技术,该产品于2007年5月在JavaOne大会上首次对外公布。JavaFX技术主要应用于创建Rich Internet application(RIAs)。使用此库编写的应用程序可以跨多个平台一致运行。 使用JavaFX开发的应用程序可以在各种设备上运行,如台式计算机,手机,电视,平板电脑等。
为了使用Java编程语言开发GUI应用程序,程序员依赖于诸如高级窗口工具包Swings之类的库 。 在JavaFX出现之后,这些Java程序员现在可以利用丰富的内容有效地开发GUI应用程序。

二、JavaFX架构

JavaFX提供了一个完整的API,提供了丰富的类和接口来构建具有丰富图形的GUI应用程序。

这个API的重要包是:


  1. javafx.animation - 包含向JavaFX节点添加基于过渡的动画(例如填充,淡化,旋转,缩放和平移)的类。
  2. javafx.application - 包含一组负责JavaFX应用程序生命周期的类。
  3. javafx.css - 包含向JavaFX GUI应用程序添加类似CSS样式的类。
  4. javafx.event - 包含用于传递和处理JavaFX事件的类和接口。
  5. javafx.geometry - 包含用于定义2D对象并对其执行操作的类。
  6. javafx.stage - 此包包含JavaFX应用程序的顶级容器类。
  7. javafx.scene - 这个包提供了类和接口来支持场景图。 此外,它还提供了诸如画布,图表,控件,效果,图像,输入,布局,媒体,油漆,形状,文本,变换,网络等子包。有几个组件支持这种丰富的JavaFX API
在JavaFX中,GUI应用程序使用场景图进行编码。 场景图是GUI应用程序构造的起点。 它保存被称为节点的(GUI)应用原语。
节点是一个视觉/图形对象,它可以包括:
  • 几何(图形)对象 - (2D和3D),如圆形,矩形,多边形等。
  • UI控件 - 例如按钮,复选框,选择框,文本区域等。
  • 容器 - (布局窗格),例如边框窗格,网格窗格,流窗格等。
  • 媒体元素 - 例如音频,视频和图像对象。
通常,节点的集合形成场景图。 所有这些节点按照如下所示的分级顺序排列。

场景图中的每个节点具有单个父节点,并且不包含任何父节点的节点被称为根节点 同样,每个节点有一个或多个子节点,没有子节点的节点称为叶节点 ; 具有子节点的节点被称为分支节点 节点实例只能添加到场景图中一次。 场景图的节点可以具有效果,不透明度,变换,事件处理程序,事件处理程序,应用程序特定状态。

三、应用程序结构

一般来说,JavaFX应用程序将有三个主要组件,即舞台,场景节点 ,如下图所示。

stage有两个参数确定它的位置,即宽度高度。它被分为内容区和装饰(标题栏和边框)。阶段(窗口)包含JavaFX应用程序的所有对象。它由javafx.stage包的Stage表示。初级阶段由平台本身创建。创建的stage对象作为参数传递给Application类的start()方法。必须调用show()方法来显示stage的内容。
四、开发HelloWorld
开发第一个javaFX例子--- HelloWorld。
package com.mf.helloworld;  
  
import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.control.Button;  
import javafx.scene.layout.StackPane;  
import javafx.stage.Stage;  
  
public class HelloWorld extends Application {  
  
    @Override  
    public void start(Stage primaryStage) throws Exception {  
        Button btn = new Button();  
        btn.setText("Hello world!");  
          
          
        //为按钮添加事件  
        //匿名类方式添加事件  
//      btn.setOnAction(new EventHandler<ActionEvent>(){  
//          @Override  
//          public void handle(ActionEvent event) {  
//              System.out.println("hello world。。。");  
//          }  
//      });
                    
        //lambda表达式方式添加事件(java8可以使用这种语法)  
        btn.setOnAction((e) -> {  
            System.out.println("hello world。。。");  
        });  
  
        StackPane root = new StackPane();  
        root.getChildren().add(btn);  
  
        //场景  
        Scene scene = new Scene(root, 300, 250);  
        primaryStage.setTitle("Hello World!");  
        primaryStage.setScene(scene);  
  
          
        primaryStage.show();  
    }  
  
    public static void main(String[] args) {  
        launch(args);  
    }  
}  

1:JavaFX应用程序的主类扩展了javafx.application。应用程序类。start()方法是所有JavaFX应用程序的主入口点。
2:JavaFX应用程序定义了用户界面的容器的一个舞台,一个场景。JavaFX的Stage类是顶级JavaFX容器。JavaFX的Scene类是所有内容的容器。该例创造舞台和场景,使场景以给定的像素大小中可见。
3:在JavaFX,场景的内容表示为一个层次场景图的节点。这个例子中,根节点是一个StackPane对象,这是一个可调整大小的布局节点。这意味着,当用户改变场(Scene)景大小或者舞台(Stage)大小时,根节点也会跟着改变。
4:根节点包含一个子节点,一个按钮控制文本,再加上一个事件处理程序在控制台来输出消息。
5:main方法有时候不是必须得,但在一些集成不齐全的时候,建议使用main方法。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值