JavaFX学习笔记(一)GUI简述

这是笔者学习JavaFX官方文档的学习笔记,其顺序也大多按照文档的顺序进行。在GUI设计开始时,我们依然以“Hello World”作为第一个程序。

不过在正式开始之前,我们先要清楚JavaFX程序是如何构成的。一个窗口的层级结构如下:

  • 顶级容器——舞台(Stage)
    • 内容容器——场景(Scene)
      • 图形节点——节点(Node)
        • 子节点

以上即是一个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;
 
public class HelloWorld 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);
   }
}

JavaFX的应用程序有一点非常不一样:它的主类需要继承自Application类,且start()方法是所有JavaFX应用程序的入口。也因此,当程序是通过JavaFX Packager工具打包时,main()方法就可以删去,因为JavaFX Package工具会将JavaFX Launcher嵌入到JAR文件中。但保留main()方法还是很有用的,这样就可以运行不带有JavaFX Launcher的JAR文件以及嵌入了JavaFX代码的Swing程序。

在本例中,root节点是一个StackPane对象,它是一个可以调整大小的layout节点。这就意味着在用户改变stage大小时,root节点可以随scene的大小变化而变化。节点又包含一个带文本的按钮子节点,按钮上添加了一个事件处理器(Event Handler),它在点击按钮时会向控制台输出信息。

程序运行效果如下:

Alt
本博客内容系笔者个人学习笔记,参考自JavaFX中文文档,如有侵权,请联系我删除。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值