I'm using Firebase with my Java project, I've added a listener to query data then add the elements to DefaultListModel
but the JList
only removes the old items and doesn't show the new data.
My JList
usersData = new DefaultListModel<>();
JList<String> users = new JList<>(usersData);
users.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
users.setSelectedIndex(0);
users.setVisibleRowCount(5);
JScrollPane fruitListScrollPane = new JScrollPane(users);
add(fruitListScrollPane, BorderLayout.SOUTH);
and my firebase value listener
firebaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
// remove all old elements from DefaultListModel
usersData.removeAllElements();
// get the data from snapshot
for (DataSnapshot userSnapshot : snapshot.getChildren()) {
User user = userSnapshot.getValue(User.class);
String userInfo = "Username: " + user.getUsername() + " & Password: " + user.getPassword();
// add the info to the model
usersData.addElement(userInfo);
// print the info
System.out.println(userInfo);
}
}
@Override
public void onCancelled(FirebaseError error) {
}
});