Ciao a Tutti!
Stò creando un semplice programmino di prova con javafx e il database.
il problema è che se il programma lo lancio direttamente con la listView con il db appare tutto i dati inseriti mentre se il database lo lancio da un button allora non appare niente alla listView.
questo è il codice della List View:
codice:
try {
conn = DriverManager.getConnection("jdbc:sqlite:src/database/db.sqlite");
ps = (PreparedStatement) conn.prepareStatement("select * FROM songs");
rs = ps.executeQuery();
items =FXCollections.observableArrayList();
while(rs.next()){
songs = new Songs();
rows =FXCollections.observableArrayList(songs);
items.add(songs);
songs.setNomeSong(rs.getString(2));
}
list = new ListView<Songs>(items);
list.setItems(items);
Collections.sort(list.getItems(), new Comparator<Songs>() {
@Override
public int compare(Songs o1, Songs o2) {
return o1.getNomeSong().compareToIgnoreCase(o2.getNomeSong());
// Implement your comparator here.
}
});
}catch (Exception e) {
e.printStackTrace();
}finally{
chiusuraDB();
}
Questo è il codice dove cerco di far apparire la tabella dal Button
codice:
btn_open_playlist.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent evt) {
try {
Class.forName("org.sqlite.JDBC");
}
catch (Exception exc) {
exc.printStackTrace();
}
try {
String openString = combo_playlist.getSelectionModel().getSelectedItem().toString();
System.out.println(openString);
conn = DriverManager.getConnection("jdbc:sqlite:src/database/db.sqlite");
ps = (PreparedStatement) conn.prepareStatement("select * FROM playlist where nomeplaylist=?");
ps.setString(1, openString);
rs = ps.executeQuery();
items =FXCollections.observableArrayList();
while(rs.next()){
songs = new Songs();
rows =FXCollections.observableArrayList(songs);
items.add(songs);
songs.setNomeSong(rs.getString(2));
}
list = new ListView<Songs>(items);
list.setItems(items);
Collections.sort(list.getItems(), new Comparator<Songs>() {
@Override
public int compare(Songs o1, Songs o2) {
return o1.getNomeSong().compareToIgnoreCase(o2.getNomeSong());
// Implement your comparator here.
}
});
}catch (Exception e) {
e.printStackTrace();
}finally{
chiusuraDB();
}
Collections.sort(list.getItems(), new Comparator<Songs>() {
@Override
public int compare(Songs o1, Songs o2) {
return o1.getNomeSong().compareToIgnoreCase(o2.getNomeSong());
// Implement your comparator here.
}
});
}
});
quando clicco sul button non appare niente!!!
come mai?