📅  最后修改于: 2023-12-03 15:16:03.463000             🧑  作者: Mango
JavaFX中的ComboBox是一个前端控件,它允许用户从一个下拉列表中选择一个或多个选项。ComboBox可以包含文本和图像,并且可以自定义其外观。ComboBox很常用,它经常出现在GUI应用程序中的用户交互界面中。
以下是一个JavaFX程序,演示如何创建和使用ComboBox控件:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ComboBoxExample extends Application {
@Override
public void start(Stage stage) {
ComboBox<String> comboBox = new ComboBox<>();
comboBox.getItems().addAll("Java", "Python", "C++", "JavaScript", "HTML", "CSS");
comboBox.setPromptText("Select your favourite programming language");
VBox root = new VBox(comboBox);
Scene scene = new Scene(root, 300, 200);
stage.setTitle("JavaFX ComboBox Example");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
该示例创建了一个ComboBox,添加了一些项目,然后将其添加到一个VBox容器中。接下来,创建了一个场景,将该容器添加到场景中,最后将场景设置到舞台上。
运行该程序,将显示一个下拉列表,显示所有项的默认文本,并且允许用户选择其中一项:
ComboBox提供了一些事件来处理用户与控件交互的情况。以下是一些常见的事件:
以下示例演示了如何在ComboBox上使用SelectionChanged事件:
comboBox.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
System.out.println("Selected item: " + newValue);
});
可以将任何节点添加到ComboBox的下拉列表中,以自定义下拉列表项的外观和行为。以下代码示例演示如何使用单元格工厂创建自定义下拉列表项:
comboBox.setCellFactory(param -> new ListCell<String>() {
{
super.setPrefWidth(100);
}
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
} else {
setText(item.toUpperCase());
}
}
});
comboBox.setButtonCell(comboBox.getCellFactory().call(null));
该代码将字母转换为大写,并将其设置为下拉列表项的文本。
ComboBox是JavaFX中的一个非常有用的控件,它可以让用户很容易地从下拉列表中选择一个或多个项目。ComboBox还支持事件处理和自定义下拉列表项,使其非常灵活和易于使用。