📜  javafx listview 获取项目索引 - Java (1)

📅  最后修改于: 2023-12-03 14:42:22.179000             🧑  作者: Mango

JavaFX ListView 获取项目索引

在 JavaFX 中,ListView 是一个用于显示可选项目的控件,它允许用户从中选择一个或多个项目。有时我们需要获取用户选择的项目索引,以便进行相应的操作。以下是通过使用 JavaFX 的 ListView 控件来获取项目索引的示例代码:

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ListViewExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建 ListView 控件
        ListView<String> listView = new ListView<>();

        // 向 ListView 添加一些项目
        ObservableList<String> items = listView.getItems();
        items.add("Item 1");
        items.add("Item 2");
        items.add("Item 3");

        // 设置 ListView 的选择模式为单选
        listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

        // 监听 ListView 的选择事件
        listView.getSelectionModel().selectedIndexProperty().addListener((observable, oldIndex, newIndex) -> {
            // 当用户选择项目时,获取新的索引值
            if (newIndex.intValue() >= 0) {
                int selectedIndex = newIndex.intValue();
                System.out.println("Selected Index: " + selectedIndex);
                
                // 或者你可以根据索引选择相应的项目
                String selectedItem = items.get(selectedIndex);
                System.out.println("Selected Item: " + selectedItem);
            }
        });

        StackPane root = new StackPane(listView);
        Scene scene = new Scene(root, 200, 150);

        primaryStage.setTitle("ListView Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上面的示例中,我们首先创建了一个 ListView 控件,并向其添加了一些项目。然后,我们将选择模式设置为单选,这意味着用户只能选择一个项目。之后,我们添加了一个监听器来监听 ListView 的选择事件。当用户选择了一个项目时,监听器会根据选择的索引值执行相应的操作。

你可以根据具体的需求,在监听器中获取选择的索引值,并进行处理。例如,你可以根据索引选择相应的项目,或者根据索引执行一些特定的操作。

以上是通过 JavaFX 的 ListView 控件获取项目索引的示例代码。希望能对你有所帮助!