2025-10-30 13:36:47

JavaFx 用户界面控件2——ListView

1.列表显示ListView

下面是一个JavaFX ListView的示例代码和使用方法:

public class ListViewExample extends Application {

@Override

public void start(Stage primaryStage) {

// 创建一个可观察的列表,用于存储ListView中的数据

ObservableList items = FXCollections.observableArrayList(

"Item 1",

"Item 2",

"Item 3",

"Item 4",

"Item 5"

);

// 创建ListView并将数据项设置为可观察列表

ListView listView = new ListView<>(items);

// 设置ListView的布局

VBox vbox = new VBox(listView);

vbox.setPadding(new Insets(10));

// 创建场景并将布局设置为场景根节点

Scene scene = new Scene(vbox, 200, 200);

// 设置舞台的标题,并将场景设置为舞台的根节点

primaryStage.setTitle("ListView Example");

primaryStage.setScene(scene);

// 显示舞台

primaryStage.show();

}

public static void main(String[] args) {

launch(args);

}

}

这是一个简单的JavaFX应用程序,创建了一个包含多个项目的ListView。将项目添加到可观察列表中,然后将其设置为ListView的数据项。最后,将ListView加入一个VBox布局中,并通过一个Scene显示在舞台上。

1.1 JavaFX 中的 ListView 过滤

下面演示如何在 JavaFX 应用程序中过滤 ListView。两个列表由应用程序管理。一个列表包含数据模型中的所有项目。第二个列表包含当前正在查看的项目。作为过滤器存储的比较逻辑片段在两者之间进行调解。

大量使用绑定来保持数据结构与用户选择的内容同步。

此屏幕截图显示了应用程序,其中包含顶行的切换按钮(用于设置过滤器)和包含对象的列表视图。

数据结构

该程序以域模型 Player 和 Player 对象数组开始。

static class Player {

private final String team;

private final String playerName;

public Player(String team, String playerName) {

this.team = team;

this.playerName = playerName;

}

public String getTeam() {

return team;

}

public String getPlayerName() {

return playerName;

}

@Override

public String toString() { return playerName + " (" + team + ")"; }

}

29位大明星的少女时代,个个像花骨朵般美丽,刘晓庆斗志昂扬
阿里校招实习-你想了解的都在这了