Czasem czytanie wiersz po wierszu to za mało.
Lekcja 11
Czasem czytanie wiersz po wierszu to za mało.
Dodaj nową zależność do projektu:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.10.4</version>
</dependency>
Utwórz POJO o nazwie Song, która będzie posiadała pola: tytuł (String), podtytuł (String), autor (String), rok (Integer), obraz (String) oraz MusicLibrary z jednym polem: listą piosenek (List<Song>).
Dana jest klasa WriteDataToFile. Napisz metodę musicLibraryToFile, która zapisze obiekt do pliku podanego jako drugi argument.
public class WriteDataToFile {
public static void main(String[] args) throws IOException {
List<Song> songs = new ArrayList<>();
songs.add(new Song("Stayin' alive", "A, a, a, a, stain' alive!", "Bee Gees", 1977, "https://static.stereogum.com/uploads/2019/11/The-Bee-Gees-Stayin-Alive-1574874474-800x536.jpg"));
songs.add(new Song("Killing Me Softly With Her Song", "Take It Easy", "Perry Como", 1990, "https://ecsmedia.pl/c/killing-me-softly-with-her-song-w-iext53741608.jpg"));
songs.add(new Song("Hotel California", " Live at the Summit, Houston, Texas", "Eagles", 1976, "https://image.ceneostatic.pl/data/products/56635000/i-the-eagles-hotel-california-40th-anniversary-remastered-edition-cd.jpg"));
songs.add(new Song("Rainbow in the Dark", "When I see lightning, you know it always brings me down", "Dio", 1983, "https://i.pinimg.com/736x/0a/97/ff/0a97ff3a726843248d3603e4777e6840.jpg"));
MusicLibrary musicLibrary = new MusicLibrary(songs);
musicLibraryToFile(musicLibrary, "data.xml");
}
}
Dana jest klasa ReadDataFromFile. Napisz metodę readMusicLibraryFrom, która będzie czytać obiekt z pliku.
public class ReadDataFromFile {
public static void main(String[] args) throws IOException {
MusicLibrary musicLibrary = readMusicLibraryFrom("data.xml");
for (Song s: musicLibrary.getSongs()) {
System.out.println(s);
}
}
}
Przygotuj widok .fxml, który będzie zawierał ScrollPane z VBoxem w środku. Nadaj fx:id dla VBoxa i utwórz dla niego zmienną w kontrolerze widoku.
W metodzie initialize kontrolera użyj ReadDataFromFile.readMusicLibraryFrom("data.xml") do zaczytania biblioteki muzycznej. Następnie za pomocą kodu stwórz kontrolki, które zostaną dodane do VBoxa. Ich zadanie to wyświetlenie każdej piosenki.