Я пытаюсь отобразить данные из моего ObservableList в TableView, который я создал в SceneBuilder. TableView содержит три TableColumns. Я дал им то же имя, что и в FXML-файле.
Я импортировал их в контроллер, как вы можете видеть ниже [1]
А потом я пытаюсь запустить свой код. У меня в основном есть песня. Песня состоит из названия, исполнителя и альбома. Я хочу отобразить его в каждом столбце, но он продолжает жаловаться на:
В списке столбцов TableView обнаружены повторяющиеся столбцы таблицы с названиями «Название песни», «Исполнитель», «Альбом».
А потом вылетает.
Кто-нибудь знает, что я делаю не так?
@FXML
private TableView<Song> defaultTableView;
// 1) Song Title
@FXML
private TableColumn songTitleColumn;
// 2) Song artist
@FXML
private TableColumn songArtistColumn;
// 3) Song album
@FXML
private TableColumn songAlbumColumn;
public void initialize(URL location, ResourceBundle resources) {
Song song1 = new Song("a lot.mp3");
Song song2 = new Song("Work Out.mp3");
Song song3 = new Song("Jesus Walks.mp3");
Playlist myPlaylist = new Playlist("My awesome playlist");
myPlaylist.addSong(song1);
myPlaylist.addSong(song2);
song1.getSongTitleFromDB();
song1.getSongArtistFromDB();
song1.getSongAlbumFromDB();
myPlaylist.displayAllSongs(defaultTableView,songTitleColumn,songArtistColumn,songAlbumColumn);
ObservableList<Song> songs = FXCollections.observableArrayList();
songs.add(song1);
songTitleColumn.setCellFactory(new PropertyValueFactory<Song,String>("songTitle"));
songArtistColumn.setCellFactory(new PropertyValueFactory<Song, String>("songArtist"));
songAlbumColumn.setCellFactory(new PropertyValueFactory<Song, String>("songAlbum"));
defaultTableView.setItems(songs);
defaultTableView.getColumns().addAll(songTitleColumn,songArtistColumn,songAlbumColumn);