javafx fxml页面一般布局方法,demo
时间: 2023-08-21 16:03:37 浏览: 92
FXML 是 JavaFX 中的一种 XML 格式文件,用于描述用户界面。FXML 文件中定义了 UI 元素的层次结构、属性和事件处理程序等。通常,FXML 文件与一个控制器类相关联,控制器类负责控制 UI 元素的行为。
下面是一个简单的 FXML 布局示例,包含一个 Label 和一个 Button:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane xmlns:fx="http://javafx.com/fxml" fx:controller="com.example.MyController">
<center>
<Label text="Hello, World!"/>
</center>
<bottom>
<Button text="Click Me!" onAction="#handleButtonClick"/>
</bottom>
</BorderPane>
```
在这个示例中,使用了 `BorderPane` 作为根布局,其中包含一个 `Label` 和一个 `Button`。`fx:controller` 属性指定了关联的控制器类为 `com.example.MyController`。
控制器类可以通过 `@FXML` 注解将 FXML 文件中的 UI 元素注入到类中,例如:
```java
public class MyController {
@FXML
private Label myLabel;
@FXML
private Button myButton;
public void handleButtonClick(ActionEvent event) {
myLabel.setText("Button clicked!");
}
}
```
在控制器类中,将 `Label` 和 `Button` 对应的变量使用 `@FXML` 注解标记,表示这些变量将通过 FXML 文件进行注入。在 `handleButtonClick` 方法中,可以操作 `myLabel` 变量,修改标签的文本。
最后,通过 `FXMLLoader` 类从 FXML 文件中加载 UI 元素和控制器类,例如:
```java
FXMLLoader loader = new FXMLLoader(getClass().getResource("example.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
```
这样就可以将 FXML 文件中定义的 UI 元素和控制器类加载到 JavaFX 应用程序中了。
阅读全文