Я делаю небольшой проект, который управляет альбомами певца, поэтому проект предоставляет вам возможность добавить нового певца, чтобы добавить альбом для конкретного певца и добавить песни в определенный альбом для конкретного певца, и я пытаюсь заставить пользователя шанс получить альбомы певца, чтобы ему не приходилось печатать его рукой, поэтому я использовал два ComboBox
один с именем «AvailableSinger», который явно для доступного певца, и другой «AlbumAvailable» для доступных альбомов для каждого певца, когда Если пользователь выберет певца, в «AlbumAvailable» отобразятся альбомы певца, выбранного в «AvailableSinger»
Я добавил двух исполнителей "Adele" и "Eminem", но когда я выберу Eminem, альбом "Adele" "Hello" будет отображаться только.
package sample;
import MusicManiPulation.Album;
import MusicManiPulation.Singer;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import java.util.ArrayList;
public class AddSongsToAlbum {
@FXML
ComboBox<String> AvailableSinger ;
@FXML
ComboBox<Album> AlbumAvailble ;
public void initialize(){
AvailableSinger.getItems().addAll(Singer.getInstance().GetSingerNames());
AvailableSinger.getSelectionModel().selectFirst();
ArrayList<Album> AlbumList =Singer.getInstance().getAlbumNameoforSinger(AvailableSinger.getSelectionModel().getSelectedItem());
AlbumAvailble.getItems().addAll(AlbumList);
}
}
Singer Class (если вы хотите понять, что я делаю)
package MusicManiPulation;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class Singer {
public static Singer Instance = new Singer();
Map<String , ArrayList<Album>>AlbumListfoEachSinger ;
private Singer() {
this.AlbumListfoEachSinger = new HashMap<>();
}
public ArrayList<String> GetSingerNames(){
ArrayList<String>SingerName = new ArrayList<>();
SingerName.addAll(AlbumListfoEachSinger.keySet());
return SingerName;
}
public Map<String, ArrayList<Album>> getAlbumListfoEachSinger() {
return AlbumListfoEachSinger;
}
public ArrayList<Album> getAlbumNameoforSinger(String SingerName){
return AlbumListfoEachSinger.get(SingerName);
}
public static Singer getInstance() {
return Instance;
}
}
Как видно, отображается только альбом Adele, но при выборе другого исполнителя он не работает.