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 字段中使用静态,因此请将其删除。
我正在尝试显示 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 字段中使用静态,因此请将其删除。