ListView 不使用 JavaFX 显示

ListView not displaying with JavaFX

我正在尝试显示 ListView,但它不起作用。 这是我要显示的数据的变量初始化的地方:

public static ListView<String> usersList = new ListView<String>();

这里是它应该显示的地方:

<listView fx:id="usersList" prefHeight="307.0" prefWidth="306.0" />

这里是存放 FXML 文件的地方:

root = FXMLoader.Load(getClass().getRessource("/View/UsersListWindowFx.fxml"));

最后,这是我在 usersList 中添加元素的地方:

public void initialize(URL location, RessourceBundle ressources) {
    List<String> usersListData = UserDataBase.getAllActiveUsersUsername();
    ObservableList<String> names = FXCollections.observableArrayList(usersListData);
    usersList.setItems(names);
}

我已经检查过了,UserDataBase.getAllActiveUsersUsername() 不是 return 一个空列表,里面有各种字符串,但是尽管如此,usersList 仍然没有显示。

请问,您知道导致此问题的原因吗?

当您在 fxml 文件中使用 fx:id 时,您不需要创建 ListView 的新实例,您只需要像这样添加 @FXML 注释:

@FXML
private ListView usersList;

您需要知道的另一件事是您不能在 fxml 字段中使用静态,因此请将其删除。