JavaFX Hello World

2018-01-09 19:24 更新

JavaFX教程 - JavaFX Hello World


以下代码显示了如何在JavaFX中创建一个窗口并添加一个按钮控制到它。 它还显示如何处理按钮的点击事件。

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
//w w  w.j  ava 2s  .  c  o m
public class Main extends Application {

  @Override
  public void start(Stage primaryStage) {
    Button btn = new Button();
    btn.setText("Say "Hello World"");
    btn.setOnAction(new EventHandler<ActionEvent>() {

      @Override
      public void handle(ActionEvent event) {
        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);
  }
}

上面的代码生成以下结果。

null


注意

JavaFX应用程序的Main类扩展了 javafx.application.Application 类。 start()方法是所有JavaFX应用程序的主要入口点。

javafx.application.Application类提供应用程序生命周期功能,如在运行时初始化,启动,启动和停止。

应用程序类为Java应用程序启动与主线程分离的JavaFX GUI组件提供了一种方法。

main()方法通过传入JavaFX应用程序Application.launch()方法的命令行参数。

访问传递到 launch()方法中的任何参数我们可以调用Application类的getParameters()方法。

执行 Application.launch()方法后,JavaFX应用程序将进入就绪状态,并且框架内部调用start()方法来启动。

调用 start()方法后,该程序在JavaFX线程中运行,而不是在主线程上运行一个JavaFX javafx.stage.Stage 对象是可供开发人员使用。

以下代码显示了覆盖的应用程序start()方法:

@Override
public void  start(Stage primaryStage) {...}


JavaFX场景图

JavaFX应用程序通过阶段和场景来定义用户界面容器。

JavaFX Stage 类是顶层JavaFX容器。JavaFX Scene 类是所有内容的容器。

Stage和Scene与Swing名称相比奇怪命名,例如JFrame,JPanel。

JavaFX API将事物建模为剧院或戏剧。

在剧院演员在观众面前演奏。一场戏由一对多的场景组成。所有场景都在舞台上进行。

在JavaFX中, Stage 等效于类似的应用程序窗口到Java Swing API JFrame 或 JDialog 。

Scene对象是一个内容窗格,类似于Java Swing的JPanel。每个场景可以保存子节点对象。

JavaFX节点

在JavaFX中,场景内容表示为a节点的分层场景图。

JavaFX节点是所有场景图形节点的基本基类。

节点可以缩放,变换,翻译和具有效果。

最常用的节点是UI控件和Shape对象。

场景图可以通过使用容器来包含子节点类如Group或Pane类。

在上面的代码中,根节点是一个 StackPane 对象,这是一个可调整大小的布局节点。

根节点包含一个子节点,一个 Button 。

按钮有一个事件处理程序,当按下按钮时打印消息。

一旦子节点已添加到我们的根Group通过 getChildren()。add()方法,我们设置primaryStage的场景并调用show()方法显示JavaFX应用程序窗口。

默认情况下,窗口将允许用户最小化,最大化和退出应用程序。

以下是设置场景并显示JavaFX应用程序窗口(Stage)的代码:

primaryStage.setScene(scene);
primaryStage.show();

JavaFX应用程序不需要main()方法当使用JavaFX Packager工具创建JAR文件时。

JavaFX Packager工具会将JavaFX Launcher嵌入JAR文件中。

例子

以下代码显示如何处理命令行参数。

import java.util.List;
//from   w  w w  .j  a  v  a 2 s  . c o m
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.SepiaTone;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class Main extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }
    
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Title");
        
        final Parameters params = getParameters();
        final List<String> parameters = params.getRaw();
        final String imageUrl = !parameters.isEmpty() ? parameters.get(0) : "";
        
        primaryStage.show();
    }
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号