Java 是否向listview中的每个元素添加listview?

Java 是否向listview中的每个元素添加listview?,java,mysql,listview,javafx,Java,Mysql,Listview,Javafx,我试图将listview附加到另一个listview中的每个元素,并且listview连接到sql数据库。因此,您可以在listview中选择一个值,然后弹出另一个listview。但我想不出如何将它们与听众联系起来。 这是我到目前为止所知道的,希望你能理解我的问题。 publicstaticvoidmain(字符串[]args){ 发射(args); } private ArrayList getArtister(){ ArrayList artister=新的ArrayList(); tr

我试图将listview附加到另一个listview中的每个元素,并且listview连接到sql数据库。因此,您可以在listview中选择一个值,然后弹出另一个listview。但我想不出如何将它们与听众联系起来。 这是我到目前为止所知道的,希望你能理解我的问题。

publicstaticvoidmain(字符串[]args){
发射(args);
}
private ArrayList getArtister(){
ArrayList artister=新的ArrayList();
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从艺术家中选择Namn”);
while(result.next()){
add(result.getString(1));
}
}catch(SQLException-ex){
System.out.println(“出了点问题…”);
}
回归艺人;
}
私有数组列表getLåtar(){
ArrayList låtar=新的ArrayList();
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从相册中选择Namn,其中艺术家='Bob Dylan'”);
while(result.next()){
låtar.add(result.getString(1));
}
}catch(SQLException-ex){
System.out.println(“出了点问题…”);
}
返回låtar;
}
私人阵列列表getLåtar1(){
ArrayList låtar=新的ArrayList();
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从相册中选择Namn,其中艺术家='Bob Marley'”);
while(result.next()){
låtar.add(result.getString(1));
}
}catch(SQLException-ex){
System.out.println(“出了点问题…”);
}
返回låtar;
}
私人阵列列表getLåtar2(){
ArrayList låtar=新的ArrayList();
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从相册中选择Namn,其中艺术家='Bob Marley'”);
while(result.next()){
låtar.add(result.getString(1));
}
}catch(SQLException-ex){
System.out.println(“出了点问题…”);
}
返回låtar;
}
私人阵列列表getLåtar3(){
ArrayList låtar=新的ArrayList();
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从相册中选择Namn,其中艺术家='Bob Marley'”);
while(result.next()){
låtar.add(result.getString(1));
}
}catch(SQLException-ex){
System.out.println(“出了点问题…”);
}
返回låtar;
}
@凌驾
公共无效开始(阶段primaryStage){
BorderPane=新的BorderPane();
ListView艺术=新建ListView();
art.getItems().addAll(getArtister());
ListView alb=新建ListView();
ListView alb1=新建ListView();
ListView alb2=新建ListView();
ListView alb3=新建ListView();
art.getSelectionModel().selectedIndexProperty().addListener(ov->{
});
文本文本=新文本(“音乐”);
text.setFont(新字体(20));
text.setFill(Color.DARKBLUE);
窗格。左置(艺术);
窗格。设置顶部(文本);
边框窗格。设置对齐(艺术,位置居中左);
边框窗格。设置对齐(文本,位置左上方);
场景=新场景(窗格,500500);
初级阶段。片名(“Musiken”);
初级阶段。场景(场景);
primaryStage.show();
}

}好的,试试这个。创建一个新类,如下所示

private class Vinyl
{
    String artist;
    List<String> listAlbums;
    
    public Vinyl(String artist) {
        this.artist = artist;
        listAlbums = new ArrayList<String>();
    }
    
    public void AddToListAlbums(String album)
    {
        listAlbums.add(album);
    }

    public String getArtist() {
        return artist;
    }

    public List<String> getListAlbums() {
        return listAlbums;
    }               
}
private class乙烯基
{
弦乐艺术家;
列表相册;
公共乙烯基(弦乐艺术家){
这个艺术家=艺术家;
listAlbums=新的ArrayList();
}
公共void AddToListAlbums(字符串相册)
{
列表相册。添加(相册);
}
公共字符串getArtist(){
回归艺术家;
}
公共列表getListAlbums(){
返回列表相册;
}               
}
我刚把它命名为乙烯基。你可以给它取任何你喜欢的名字

现在返回到主类,定义一个全局的乙烯基列表。只调用这些方法来填充列表

List<Vinyl> listVinyl = new ArrayList<>();  

private void GetArtists () {
    
    try (Connection conn = DriverManager.getConnection(
            "jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false",
            "1ik013v20-12", "aubergine")) {
        Statement statement = conn.createStatement();
        ResultSet result = statement.executeQuery("SELECT Namn FROM artist");
        while (result.next()) {
            listVinyl.add(new Vinyl(result.getString(1))); 
        }
    } catch (SQLException ex) {
        System.out.println("Something went wrong...");
    }        
}   

private void GetAlbums () {      
    try (Connection conn = DriverManager.getConnection(
            "jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false",
            "1ik013v20-12", "aubergine")) {
        Statement statement = conn.createStatement();
        ResultSet result = statement.executeQuery("SELECT Namn FROM album");
        
        Vinyl currentVinyl;
        String album = "";
        
        while (result.next()) {
            
            String artist = result.getString(1); // TODO you must correct the number. I don't know which field is it.
            
            currentVinyl = listVinyl.stream()
                    .filter(u -> u.artist.equals(artist))
                    .findAny()
                    .orElse(null);
            
            album = result.getString(2); // TODO you must correct the number. I don't know which field is it.               
            
            currentVinyl.AddToListAlbums(album);                
        }
    } catch (SQLException ex) {
        System.out.println("Something went wrong...");
    }
}
List listvinyly=new ArrayList();
私人艺术家(){
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从艺术家中选择Namn”);
while(result.next()){
添加(新的乙烯基(result.getString(1));
}
}catch(SQLException-ex){
System.out.println(“出了点问题…”);
}        
}   
私有void GetAlbums(){
try(Connection conn=DriverManager.getConnection(
“jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false“,
“1ik013v20-12”、“茄子”)){
语句Statement=conn.createStatement();
ResultSet result=statement.executeQuery(“从相册中选择Namn”);
乙烯基;
字符串相册=”;
while(result.next()){
String artist=result.get
List<Vinyl> listVinyl = new ArrayList<>();  

private void GetArtists () {
    
    try (Connection conn = DriverManager.getConnection(
            "jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false",
            "1ik013v20-12", "aubergine")) {
        Statement statement = conn.createStatement();
        ResultSet result = statement.executeQuery("SELECT Namn FROM artist");
        while (result.next()) {
            listVinyl.add(new Vinyl(result.getString(1))); 
        }
    } catch (SQLException ex) {
        System.out.println("Something went wrong...");
    }        
}   

private void GetAlbums () {      
    try (Connection conn = DriverManager.getConnection(
            "jdbc:mysql://vhost6.lnu.se:23306/1ik013v20-12?useSSL=false",
            "1ik013v20-12", "aubergine")) {
        Statement statement = conn.createStatement();
        ResultSet result = statement.executeQuery("SELECT Namn FROM album");
        
        Vinyl currentVinyl;
        String album = "";
        
        while (result.next()) {
            
            String artist = result.getString(1); // TODO you must correct the number. I don't know which field is it.
            
            currentVinyl = listVinyl.stream()
                    .filter(u -> u.artist.equals(artist))
                    .findAny()
                    .orElse(null);
            
            album = result.getString(2); // TODO you must correct the number. I don't know which field is it.               
            
            currentVinyl.AddToListAlbums(album);                
        }
    } catch (SQLException ex) {
        System.out.println("Something went wrong...");
    }
}