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);
}
这是我打开文件并将其添加到javaFX表的代码,我的问题是,我将如何更改此代码,以便打开jfilechooser,然后当用户选择其内容时,它将ADDS添加到表中。现在,如果我尝试打开一个新文件,而内容已经在表格中,它将首先删除表格中的内容,然后添加新内容。
谢谢,
答案 0 :(得分:0)
该类 ObservableList 有一个很好的方法addAll()。
它非常像“普通”java(非fx)集合。
换句话说:在您当前的代码中,您只需创建一个完全新集合。您可以在现有集合上调用addAll()来添加新创建的集合,而不是这样做;像:
if (dataForTableView == null) {
dataForTableView = FXCollections.observableArrayList(...
} else {
dataForTableView.addAll(FXCollections.observableArrayList(...
}