@FXML
void drawUi() {
ObservableList usersData = FXCollections.observableArrayList();
okeyButton.setOnAction(event -> {
Main.service.submit(() -> {
ArrayList id = words(textField.getText());
for (int i = 0; i < id.size(); i++) {
try {
ResponseGlobalInfo responseInfo = ShowInfo.getInfo(id.get(i));
for (int j = 0; j < responseInfo.items.length; j++) {
Channel.setName(responseInfo.items[j].snippet.title);
String name = Channel.getName();
Channel.setDate(responseInfo.items[j].snippet.publishedAt);
String publishedDate = Channel.getDate();
String date = GlobalInfo.getDate(publishedDate);
Channel.setSubscribers(responseInfo.items[j].statistics.subscriberCount);
String subscribers = Channel.getSubscribers();
Channel.setCountVideo(responseInfo.items[j].statistics.videoCount);
String countVideo = Channel.getCountVideo();
Channel.setCountViews(responseInfo.items[j].statistics.viewCount);
String countViews = Channel.getCountViews();
usersData.add(i, new Channel(Channel.getName(), Channel.getDate(), Channel.getSubscribers(),
Channel.getCountVideo(), Channel.getCountViews()));
System.out.println(" id - " + id.get(j));
System.out.println("name - " + name);
}
treeView.setVisible(true);
nameColumn.setCellValueFactory(new PropertyValueFactory("name"));
dateColumn.setCellValueFactory(new PropertyValueFactory("date"));
subColumn.setCellValueFactory(new PropertyValueFactory("subscribers"));
videoColumn.setCellValueFactory(new PropertyValueFactory("countVideo"));
viewsColumn.setCellValueFactory(new PropertyValueFactory("countViews"));
treeView.setItems(usersData);
} catch (UnirestException e) {
e.printStackTrace();
}
}
});
});
}
вот код, могу скинуть на github.
После выполнения метода в колонах должны появится данные двух ютуб каналов. В итоге выводятся данные 1 канала 2 раза. В теле цикла все идет ок и данные разные, но после добавления, в userData оказывается 2 одинаковых канала. В чем может быть проблема?
Вопрос задан
более трёх лет назад
112 просмотров