JavaFX UI组件
JavaFX是一种用于构建富客户端应用程序的Java框架。它提供了一组丰富的UI组件,可以用于创建各种类型的用户界面。本文将介绍一些常用的JavaFX UI组件,以及它们的用法和示例代码。
1. Label组件
Label组件用于显示文本或图标。它可以用于在界面上显示静态文本或动态文本,也可以用于显示图标。
示例代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class LabelExample extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
运行上述代码,将在窗口中显示一个带有文本"Hello, JavaFX!"的Label。
2. Button组件
Button组件用于创建按钮。可以为按钮添加事件处理程序,以便在用户点击按钮时执行相应的操作。
示例代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ButtonExample extends Application {
@Override
public void start(Stage primaryStage) {
Button button = new Button("Click Me!");
button.setOnAction(event -> System.out.println("Button clicked!"));
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上述代码创建了一个按钮,当用户点击按钮时,控制台将输出"Button clicked!"。
3. TextField组件
TextField组件用于接收用户输入的文本。可以通过getText()方法获取用户输入的文本内容。
示例代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TextFieldExample extends Application {
@Override
public void start(Stage primaryStage) {
TextField textField = new TextField();
Button button = new Button("Submit");
button.setOnAction(event -> {
String text = textField.getText();
System.out.println("User input: " + text);
});
VBox root = new VBox();
root.getChildren().addAll(textField, button);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上述代码创建了一个文本输入框和一个提交按钮。当用户输入文本并点击提交按钮时,程序将在控制台上打印用户输入的文本内容。
4. CheckBox组件
CheckBox组件用于提供一个复选框。可以通过isSelected()方法获取复选框的选中状态。
示例代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class CheckBoxExample extends Application {
@Override
public void start(Stage primaryStage) {
CheckBox checkBox = new CheckBox("Enable Feature");
Label label = new Label();
checkBox.setOnAction(event -> {
boolean selected = checkBox.isSelected();
label.setText("Feature is " + (selected ? "enabled" : "disabled"));
});
VBox root = new VBox();
root.getChildren().addAll(checkBox, label);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上述代码创建了一个复选框和一个标签。当用户点击复选框时,程序将根据复选框的选中状态在标签上显示相应的文本。
5. ComboBox组件
ComboBox组件用于提供一个下拉列表,用户可以从中选择一个选项。
示例代码:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ComboBoxExample extends Application {
@Override
public void start(Stage primaryStage) {
ComboBox<String> comboBox = new ComboBox<>(FXCollections.observableArrayList("