java fx 基础教程,JavaFx中文入门教程--属性和函数

http://cnjavafx.cn/javafx/index.html

属性和函数属性

属性定义了对象的状态,存放了对象中的数据。属性用attribute关键字声明。格式为:attribute 属性名:属性值;

声明的时候,还可以给属性初始化。属性初始化的顺序和类定义式声明的顺序是一样的。先看一个例子:attrfunc01.fxpackage example;

import java.lang.System;

class X {     attribute a: Number = 10;     attribute b: Number = -1;}

var x = X { };System.out.println(x.a); // prints 10.0System.out.println(x.b); // prints -1.0

运行看结果:#javafxc attrfunc01.fx -d .

#javafx example.attrfunc0110.0-1.0

如果没有提供初始化值,则属性被初始化为一个默认值。看一个默认值的例子:attrfunc02.fxpackage example;

import java.lang.System;

class DefaultValuesDemo {     attribute a: Number;     attribute b: Integer;     attribute c: Boolean;     attribute d: String;}

var demo = DefaultValuesDemo {};System.out.println("Default Value: " + demo.a);System.out.println("Default Value: " + demo.b);System.out.println("Default Value: " + demo.c);System.out.println("Default Value: " + demo.d);

运行看一下默认值的输出结果:#javafxc attrfunc02.fx -d .

#javafx example.attrfunc02Default Value: 0.0Default Value: 0Default Value: falseDefault Value:

函数

函数定义了一个类的行为。格式为:function 函数名(参数名:参数类型,...):返回值 函数体

其中,函数体可以是任何一种表达式。

在JavaFx,函数也是对象。函数可以被赋值给变量,或者当作参数传递给其他函数。package example;

class A {    function foo():Void {        foo(10);    }

function foo(i:Integer):Void {        }}

function foo():Void {}

// 编译错误,全局函数不能重载//function foo(i:Integer):Void {//}

代码中给出几个函数定义的例子,以及函数重载。成员函数是可以重载的,但是全局函数重载会编译失败。匿名函数

JavaFx中,可以有匿名函数,通常用于GUI组件的action属性,充当事件处理。匿名函数的语法格式,就是普通函数省略函数名即可。看代码:attrfunc04.fxpackage example;

import java.lang.System;import javafx.ext.swing.*;

SwingFrame {    width:300    height:300    visible:true    content: FlowPanel {        content: [            Button {                text:"Press"                action: function ():Void {                    System.out.println("Clicked!");                }            }        ]    }}

编译看运行结果:#javafxc attrfunc04.fx -d .

#javafx example.attrfunc04Clicked!Clicked!Clicked!Clicked!

看一下运行截图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaFX 是一个用于构建富客户端应用程序的图形用户界面 (GUI) 框架。本教程将带您快速了解 JavaFX 的基础知识,以便开始构建自己的应用程序。 1. 安装 JavaFX 首先,您需要安装 JavaFX。如果您已经安装了 Java SE 11 或更高版本,则无需额外的安装。否则,您需要下载并安装 JavaFX SDK。下载链接:https://gluonhq.com/products/javafx/ 2. 创建 JavaFX 应用程序 创建 JavaFX 应用程序的步骤如下: - 创建一个 Java 项目。 - 添加 JavaFX 库到项目中。 - 创建一个 Java 类,并将其扩展为 Application 类。 - 在 start() 方法中编写应用程序的 GUI 代码。 以下是一个简单的示例: ``` import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class MyJavaFXApp extends Application { @Override public void start(Stage primaryStage) { // 创建一个标签 Label label = new Label("Hello, JavaFX!"); // 创建一个 StackPane 布局 StackPane root = new StackPane(); root.getChildren().add(label); // 创建一个场景 Scene scene = new Scene(root, 300, 250); // 设置场景到舞台 primaryStage.setScene(scene); // 设置舞台标题 primaryStage.setTitle("My JavaFX App"); // 显示舞台 primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 3. 运行 JavaFX 应用程序 要运行 JavaFX 应用程序,您可以在 IDE 中单击“运行”按钮,或者在命令行中使用以下命令: ``` java --module-path /path/to/javafx-sdk-16/lib --add-modules javafx.controls,javafx.fxml MyJavaFXApp ``` 其中,`/path/to/javafx-sdk-16/lib` 是 JavaFX SDK 的路径。如果您使用的是其他版本的 JavaFX SDK,则需要修改路径。 4. JavaFX 控件 JavaFX 提供了许多常用的 GUI 控件,例如按钮、标签、文本框、下拉列表框等等。您可以使用这些控件构建自己的用户界面。 以下是一些常用的 JavaFX 控件: - Button:按钮控件。 - Label:标签控件。 - TextField:文本框控件。 - TextArea:多行文本框控件。 - ChoiceBox:下拉列表框控件。 - CheckBox:复选框控件。 - RadioButton:单选按钮控件。 - ToggleButton:切换按钮控件。 - ComboBox:组合框控件。 使用这些控件的示例代码如下: ``` import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.ChoiceBox; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.RadioButton; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.control.ToggleButton; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class MyJavaFXApp extends Application { @Override public void start(Stage primaryStage) { // 创建一个标签 Label label = new Label("JavaFX Controls"); // 创建一个文本框 TextField textField = new TextField(); // 创建一个多行文本框 TextArea textArea = new TextArea(); // 创建一个按钮 Button button = new Button("Click Me"); // 创建一个复选框 CheckBox checkBox = new CheckBox("Check Me"); // 创建两个单选按钮 RadioButton radioButton1 = new RadioButton("Option 1"); RadioButton radioButton2 = new RadioButton("Option 2"); // 创建一个切换按钮 ToggleButton toggleButton = new ToggleButton("Toggle Me"); // 创建一个下拉列表框 ChoiceBox<String> choiceBox = new ChoiceBox<>(); choiceBox.getItems().addAll("Option 1", "Option 2", "Option 3"); choiceBox.setValue("Option 1"); // 创建一个组合框 ComboBox<String> comboBox = new ComboBox<>(); comboBox.getItems().addAll("Option 1", "Option 2", "Option 3"); comboBox.setEditable(true); // 创建一个网格布局 GridPane gridPane = new GridPane(); gridPane.setPadding(new Insets(10)); gridPane.setHgap(10); gridPane.setVgap(10); // 将控件添加到网格布局中 gridPane.add(label, 0, 0); gridPane.add(textField, 1, 0); gridPane.add(textArea, 0, 1, 2, 1); gridPane.add(button, 0, 2); gridPane.add(checkBox, 1, 2); gridPane.add(radioButton1, 0, 3); gridPane.add(radioButton2, 1, 3); gridPane.add(toggleButton, 0, 4); gridPane.add(choiceBox, 1, 4); gridPane.add(comboBox, 0, 5, 2, 1); // 创建一个水平箱布局 HBox hBox = new HBox(); hBox.setPadding(new Insets(10)); hBox.setSpacing(10); hBox.getChildren().addAll(button, checkBox, radioButton1, radioButton2, toggleButton); // 创建一个垂直箱布局 VBox vBox = new VBox(); vBox.setPadding(new Insets(10)); vBox.setSpacing(10); vBox.getChildren().addAll(label, textField, textArea, hBox, choiceBox, comboBox); // 创建一个场景 Scene scene = new Scene(vBox, 400, 300); // 设置场景到舞台 primaryStage.setScene(scene); // 设置舞台标题 primaryStage.setTitle("My JavaFX App"); // 显示舞台 primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 5. JavaFX 布局 JavaFX 提供了许多常用的布局,例如网格布局、边界布局、流布局等等。您可以使用这些布局来组织自己的用户界面。 以下是一些常用的 JavaFX 布局: - GridPane:网格布局。 - BorderPane:边界布局。 - HBox:水平箱布局。 - VBox:垂直箱布局。 - FlowPane:流布局。 使用这些布局的示例代码如下: ``` import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; import javafx.scene.layout.FlowPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class MyJavaFXApp extends Application { @Override public void start(Stage primaryStage) { // 创建一个标签 Label label = new Label("JavaFX Layouts"); // 创建一个按钮 Button button = new Button("Click Me"); // 创建一个网格布局 GridPane gridPane = new GridPane(); gridPane.setPadding(new Insets(10)); gridPane.setHgap(10); gridPane.setVgap(10); // 将控件添加到网格布局中 gridPane.add(label, 0, 0); gridPane.add(button, 1, 0); // 创建一个边界布局 BorderPane borderPane = new BorderPane(); borderPane.setPadding(new Insets(10)); borderPane.setTop(label); borderPane.setCenter(button); // 创建一个水平箱布局 HBox hBox = new HBox(); hBox.setPadding(new Insets(10)); hBox.setSpacing(10); hBox.getChildren().addAll(label, button); // 创建一个垂直箱布局 VBox vBox = new VBox(); vBox.setPadding(new Insets(10)); vBox.setSpacing(10); vBox.getChildren().addAll(label, button); // 创建一个流布局 FlowPane flowPane = new FlowPane(); flowPane.setPadding(new Insets(10)); flowPane.setHgap(10); flowPane.setVgap(10); flowPane.getChildren().addAll(label, button); // 创建一个场景 Scene scene = new Scene(flowPane, 400, 300); // 设置场景到舞台 primaryStage.setScene(scene); // 设置舞台标题 primaryStage.setTitle("My JavaFX App"); // 显示舞台 primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 6. JavaFX 事件处理 JavaFX 提供了许多常用的事件,例如鼠标点击事件、键盘按下事件、窗口关闭事件等等。您可以使用这些事件处理程序来响应用户的操作。 以下是一些常用的 JavaFX 事件: - MouseEvent:鼠标事件。 - KeyEvent:键盘事件。 - WindowEvent:窗口事件。 - ActionEvent:动作事件。 使用这些事件处理程序的示例代码如下: ``` import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.input.MouseEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class MyJavaFXApp extends Application { @Override public void start(Stage primaryStage) { // 创建一个标签 Label label = new Label("Hello, JavaFX!"); // 创建一个按钮 Button button = new Button("Click Me"); // 创建一个 StackPane 布局 StackPane root = new StackPane(); root.getChildren().addAll(label, button); // 创建一个场景 Scene scene = new Scene(root, 300, 250); // 设置按钮的鼠标点击事件处理程序 button.setOnMouseClicked((MouseEvent event) -> { label.setText("Button Clicked"); }); // 设置窗口关闭事件处理程序 primaryStage.setOnCloseRequest((event) -> { System.out.println("Window Closed"); }); // 设置场景到舞台 primaryStage.setScene(scene); // 设置舞台标题 primaryStage.setTitle("My JavaFX App"); // 显示舞台 primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 以上就是 JavaFX 的快速入门教程。希望可以帮助您了解 JavaFX 的基础知识,并开始构建自己的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值