第一个 JavaFX 应用程序

在本教程中,我将向您展示如何创建您的第一个 JavaFX 应用程序。因此,本教程既可以向您介绍核心 JavaFX 概念,也可以为您提供一些 JavaFX 代码,您可以将其用作您自己的实验的模板。

JavaFX 应用程序类

JavaFX 应用程序需要一个主启动类。该类必须扩展 javafx.application.Application自 Java 8 以来 Java 中的标准类。

这是一个示例子类Application:

import javafx.application.Application;

public class JavaFx01 extends Application {

}

实现 start()

JavaFXApplication类的所有子类都必须实现该类的抽象start() 方法Application(或者是其Application自身的抽象子类)。

该start() 方法在 JavaFX 应用程序启动时被调用。这是上面的示例,但已start()实现方法:

import javafx.application.Application;
import javafx.stage.Stage;

public class JavaFx01 extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("我的第一个JavaFx程序!");
        stage.show();
    }
}

该start()方法采用类型的单个参数Stage。该阶段是显示 JavaFX 应用程序的所有可视部分的地方。该Stage对象由 JavaFX 运行时为您创建。

上面的例子在舞台对象上设置了一个标题,然后调用show()它。这将使 JavaFX 应用程序在窗口中可见,并且窗口顶部栏中的标题可见。

如果您不调用show()舞台对象,则什么都看不到。没有打开任何窗口。如果您的 JavaFX 应用程序在启动时不可见,请检查您是否记得 Stage show()从内部调用该方法start()。

添加一个 main() 方法

您实际上可以在没有main()方法的情况下启动 JavaFX 应用程序。但是,如果您想将命令行参数传递给应用程序,您需要添加一个main()方法。一般来说,我更喜欢添加一个main()方法,因为它可以更明确地说明哪些代码启动了应用程序。

这是上面main()添加了一个方法的示例:

import javafx.application.Application;
import javafx.stage.Stage;

public class JavaFx01 extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("我的第一个JavaFx程序!");
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

如您所见,该方法使用命令行参数main()调用静态方法。launch()该launch()方法是位于Application 类中的静态方法。此方法启动 JavaFX 运行时和您的 JavaFX 应用程序。

该launch()方法将检测从哪个类调用它,因此您不必明确告诉它要启动哪个类。

这就是创建 JavaFX 应用程序所需的全部内容。这很简单,不是吗?现在您已经准备好开始使用 JavaFX 了!

这是运行上述 JavaFX 应用程序后打开的窗口的屏幕截图:

添加场景

前面的 JavaFX 示例仅打开一个窗口,但在此窗口内不显示任何内容。要在 JavaFX 应用程序窗口中显示某些内容,您必须Scene向Stage对象添加一个。这是在start()方法内部完成的。

要在 JavaFX 应用程序中显示的所有组件都必须位于场景中。“舞台”和“场景”的名称灵感来自剧院。一个舞台可以展示多个场景,就像在戏剧中一样。类似地,计算机游戏可以有菜单场景、游戏场景、游戏结束场景、高分场景等。

这是一个如何将Scene对象添加到的示例Stage以及一个简单的 Label:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class JavaFx02 extends Application {
    @Override
    public void start(Stage stage)  {
        stage.setTitle("我的第一个JavaFx程序!");

        Label label = new Label("Hello World, JavaFX !");
        //场景:将标签放到场景中
        Scene scene = new Scene(label, 400, 200);

        //将场景添加到舞台中
        stage.setScene(scene);

        //展示舞台
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }

}

 

此示例中添加了三行。首先Label创建一个对象。然后Scene 创建一个对象,传递Labelas 参数以及表示场景宽度和高度的两个参数。

构造函数的第一个参数是场景图Scene的根元素。场景图是一个类似于对象结构的图形,包含要在 JavaFX 应用程序中显示的所有可视组件 - 例如 GUI 组件。

width 和 height 参数设置 JavaFX 窗口打开时的宽度和高度,但用户可以调整窗口大小。

以下是打开的窗口在添加Scene和Label添加后的外观:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑石课堂

请给我打钱!!!谢谢,不客气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值