在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) {
// 创建一个可观察的列表,用于存储数据
ObservableList<String> items = FXCollections.observableArrayList("Item 1", "Item 2", "Item 3");
// 创建一个ListView,用于显示数据
ListView<String> listView = new ListView<>();
listView.setItems(items);
// 为每个列表项添加复选框
listView.setCellFactory(lv -> {
CheckBox checkBox = new CheckBox();
ListCell<String> 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中创建一个带有复选框的列表视图。要实现更高级的功能(例如获取选定的条目),你需要进一步处理复选框的状态变化事件。