在Java中,没有名为“CheckedListBox”的组件
首先,确保已经安装了JavaFX库。然后,创建一个新的JavaFX项目并导入以下所需的库:
import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.control.ListView; import javafx.scene.layout.VBox; import javafx.stage.Stage;
接下来,创建一个Application
类并实现start()
方法:
public class CheckedListBoxDemo extends Application { @Override public void start(Stage primaryStage) { // 创建一个可观察的列表,用于存储数据 ObservableListitems = FXCollections.observableArrayList("Item 1", "Item 2", "Item 3"); // 创建一个ListView,用于显示数据 ListView listView = new ListView<>(); listView.setItems(items); // 为每个列表项添加复选框 listView.setCellFactory(lv -> { CheckBox checkBox = new CheckBox(); ListCell cell = new ListCell<>(); cell.itemProperty().addListener((obs, oldValue, newValue) -> { if (newValue != null) { checkBox.setText(newValue); cell.setGraphic(checkBox); } else { cell.setGraphic(null); } }); return cell; }); // 创建一个VBox容器,将ListView添加到其中 VBox vbox = new VBox(listView); vbox.setPadding(new Insets(10)); // 创建一个场景,将VBox容器添加到其中 Scene scene = new Scene(vbox, 300, 250); // 设置主窗口的标题和场景 primaryStage.setTitle("Checked List Box Demo"); primaryStage.setScene(scene); // 显示主窗口 primaryStage.show(); } public static void main(String[] args) { launch(args); } }
这个例子创建了一个包含三个条目的ListView
,每个条目都有一个复选框。当你运行这个程序时,你会看到一个包含复选框的列表视图。你可以通过点击复选框来选择或取消选择条目。
请注意,这个例子仅展示了如何在JavaFX中创建一个带有复选框的列表视图。要实现更高级的功能(例如获取选定的条目),你需要进一步处理复选框的状态变化事件。