JavaFx 用户界面控件2——ListView
1.列表显示ListView
下面是一个JavaFX ListView的示例代码和使用方法:
public class ListViewExample extends Application {
@Override
public void start(Stage primaryStage) {
// 创建一个可观察的列表,用于存储ListView中的数据
ObservableList
"Item 1",
"Item 2",
"Item 3",
"Item 4",
"Item 5"
);
// 创建ListView并将数据项设置为可观察列表
ListView
// 设置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 + ")"; }
}