Huhu!
Aaaalo :lol: : Ich schreibe ja derzeit an meinem Videoverwaltungsprog. Nun folgendes "Problem": Über einen Button lasse ich einen JFileChooser aufspringen, in dem man die Datenbank auswählen kann. Wenn ich dann auf OK klicke werden die Filmnamen aus der Datenbank geholt (ca. 900) und in mein Model der JList eingetragen.
Aus irgendeinem Grund, welchen ich nicht nachvollziehen kann, dauert das ganz "gefühlte" 2 Sekunden. Daher hab ich einfach mal mit System.currentTimeMillis() die Zeit des kompletten Ablaufs gemessen, also von klicken auf OK bis dann die Filme in der JList sind - "nur" 239 ms. Könnt ihr mir einen Tip woran das liegt? Ich weiss auch nicht genau, was ich an Code posten könnte, ich poste einfach mal den etwaigen Ablauf:
Die actionPerformed wo ich den JFileChooser aufploppen lasse....
Hier ein Ausschnitt SQL Objekt, wo die Funktion getMovies2() zu finden ist:
Und dann die Methode setMovies() in meiner Gui Klasse:
So, wenn ihr eine Idee habt, woran das liegt -> Bescheid sagen .
Gruß,
VipViper2000
Aaaalo :lol: : Ich schreibe ja derzeit an meinem Videoverwaltungsprog. Nun folgendes "Problem": Über einen Button lasse ich einen JFileChooser aufspringen, in dem man die Datenbank auswählen kann. Wenn ich dann auf OK klicke werden die Filmnamen aus der Datenbank geholt (ca. 900) und in mein Model der JList eingetragen.
Aus irgendeinem Grund, welchen ich nicht nachvollziehen kann, dauert das ganz "gefühlte" 2 Sekunden. Daher hab ich einfach mal mit System.currentTimeMillis() die Zeit des kompletten Ablaufs gemessen, also von klicken auf OK bis dann die Filme in der JList sind - "nur" 239 ms. Könnt ihr mir einen Tip woran das liegt? Ich weiss auch nicht genau, was ich an Code posten könnte, ich poste einfach mal den etwaigen Ablauf:
Die actionPerformed wo ich den JFileChooser aufploppen lasse....
Code:
if(e.getActionCommand().equals("Datenbank öffnen")) {
fchooser = new JFileChooser();
fchooser.setFileFilter(new HSQLDBFilter());
fchooser.setDialogTitle("CinemaX Datenbank auswählen");
fchooser.setMultiSelectionEnabled(false);
int returnVal = fchooser.showOpenDialog(gui);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try{
String pfad = fchooser.getSelectedFile().getCanonicalPath();
if(sqlCon.connectDb(pfad.substring(0,pfad.lastIndexOf(".")),2)){
filme = sqlCon.getMovies2();
gui.setMovies(filme);
}else {
JOptionPane.showMessageDialog(
gui,
"Konnte Datenbank nicht öffnen, da es sich nicht um\n" +
"um eine gültige CinemaX Datenbank handelt.\n" +
"Benutzen Sie das Konvertierungstool, um aus einer\n" +
"VideoStore Datenbank eine CinemaX kompatible Datenbank\n" +
"zu machen!",
"Fehler",
JOptionPane.ERROR_MESSAGE);
}
}catch(IOException e1){
e1.printStackTrace();
}
}
}
Hier ein Ausschnitt SQL Objekt, wo die Funktion getMovies2() zu finden ist:
Code:
public String[] getMovies2(){
String sqlQuery = "SELECT Titel FROM Cinemax";
filme = null;
int rows;
try {
rows = getNumberOfMovies();
filme = new String[rows];
Statement stmt = connections.getLast().createStatement();
rSet = stmt.executeQuery(sqlQuery);
int i = 0;
while(rSet.next()){
filme[i] = rSet.getString(1);
i++;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return filme;
}
Und dann die Methode setMovies() in meiner Gui Klasse:
Code:
public void setMovies(String[] obj){
for(int i=0;i<obj.length;i++){
model.add(i,obj[i]);
}
setListeners(true);
setButtonsEnabled(true);
filmListe.setSelectedIndex(0);
}
So, wenn ihr eine Idee habt, woran das liegt -> Bescheid sagen .
Gruß,
VipViper2000