迭代并添加到observableArrayList-java

迭代并添加到observableArrayList-java,java,collections,fxml,Java,Collections,Fxml,这是我打开一个文件并将其添加到javaFX表中的代码,我的问题是,如何更改此代码以使其打开一个jfilechooser,然后当用户选择其内容时将其添加到表中。现在,如果我在内容已经在表中时尝试打开一个新文件,它将首先删除表中的内容,然后添加新内容 谢谢,那个类ObservableList有一个很好的方法 它的工作原理非常类似于“普通”java(非fx)集合 换句话说:在当前代码中,只需创建一个全新的集合。您可以对现有集合调用addAll()来添加新创建的集合,而不是这样做;比如: JFileCh

这是我打开一个文件并将其添加到javaFX表中的代码,我的问题是,如何更改此代码以使其打开一个jfilechooser,然后当用户选择其内容时将其添加到表中。现在,如果我在内容已经在表中时尝试打开一个新文件,它将首先删除表中的内容,然后添加新内容

谢谢,

那个类ObservableList有一个很好的方法

它的工作原理非常类似于“普通”java(非fx)集合

换句话说:在当前代码中,只需创建一个全新的集合。您可以对现有集合调用addAll()来添加新创建的集合,而不是这样做;比如:

JFileChooser fileChooser = new JFileChooser();

    FileFilter ft = new FileNameExtensionFilter("MP3 Files", "mp3");
    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    fileChooser.setAcceptAllFileFilterUsed(false);
    fileChooser.addChoosableFileFilter(ft);

        if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
            String pathScannedOnLoad1 = fileChooser.getSelectedFile().toString();
            final MusicMediaCollection collection = MUSIC_SERVICE
            .createMusicMediaCollection(Paths.get(pathScannedOnLoad1));
    dataForTableView = FXCollections.observableArrayList(collection.getMusic());
    dataForTableView.addListener(makeChangeListener(collection));
    tableView.setItems(dataForTableView);
    tableView.setEditable(true); 
        }
那个类ObservableList有一个很好的方法

它的工作原理非常类似于“普通”java(非fx)集合

换句话说:在当前代码中,只需创建一个全新的集合。您可以对现有集合调用addAll()来添加新创建的集合,而不是这样做;比如:

JFileChooser fileChooser = new JFileChooser();

    FileFilter ft = new FileNameExtensionFilter("MP3 Files", "mp3");
    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    fileChooser.setAcceptAllFileFilterUsed(false);
    fileChooser.addChoosableFileFilter(ft);

        if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
            String pathScannedOnLoad1 = fileChooser.getSelectedFile().toString();
            final MusicMediaCollection collection = MUSIC_SERVICE
            .createMusicMediaCollection(Paths.get(pathScannedOnLoad1));
    dataForTableView = FXCollections.observableArrayList(collection.getMusic());
    dataForTableView.addListener(makeChangeListener(collection));
    tableView.setItems(dataForTableView);
    tableView.setEditable(true); 
        }

你能给我举个例子或者编辑上面的代码吗?这件事我已经纠缠了好几个小时了。非常感谢。谢谢,我成功了!你能给我举个例子或者编辑上面的代码吗?这件事我已经纠缠了好几个小时了。非常感谢。谢谢,我成功了!