Tråd der skal opdaterer en liste med data fra db
Har en liste med data fra min mySQL database, samt tilhørende jbutton med actionlistener i hver række. Ville gerne have den til at opdaterer sig selv hvert 2. sekund, hvilket jeg har prøvet at løse vha. en Thread, men det lader til at der er noget galt for det er et lidt tilfældigt antal rækker der bliver skrevet ud til guien hver gang jeg køre den. Her er min kode indtil videre:getKundeOrdrer = new Thread(new Runnable() {
public void run() {
try {
while(true) {
// Do-while loop der koerer igennem resultsettet for
// at udskrive alle data om kundeordrerne
do {
result = kaldSQL.alleKundeordrer(connectDB); // resultset henter fra databasen i KaldSQ klassen
final int ordreID = result.getInt(1); // id for kundeordren
String kundeCVR = result.getString(2); // kundens cvr nummer
int ordreStatus = result.getInt(3); //Ordrestatus (int)
// omskriver ordrestatus (int) til en tekststreng
if (ordreStatus == 0) {
ordreStatusString = "Bestilt";
} else if (ordreStatus == 1) {
ordreStatusString = "Leveret";
} else {
ordreStatusString = "Fejl";
}
// Ny knap til visning af af kundeordren for hver gang loopet kører
gotoKundeordre = new JButton("Se kundeordre");
gotoKundeordre.setPreferredSize(new Dimension(120, 25));
String bestillingsDato = result.getString(4); // dato for bestilling af ordren
String leveringsDato = result.getString(5); // dato for levering af ordren
// ActionListener til hver enkel knap paa listen
gotoKundeordre.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
VisKundeordre visOrdre = new VisKundeordre(); // Objekt VisKundeOrdre oprettes
visOrdre.visKundeordre(ordreID);
}
});
// Indsætter Jlabel med oplysninger om en kundeordre til listen
midtPanel.add(new JLabel("<html><table style=\"width: 360px;\">" +
"<tr><td width=\"60\">"+ordreID+"</td><td width=\"90\">"+kundeCVR+"</td><td width=\"90\">"+ordreStatusString+"</td><td>"+bestillingsDato+"</td><td>"+leveringsDato+"</td></tr>" +
"</table></html>"));
// Indsætter den unikke JButton udfra de tilhørende oplysninger
midtPanel.add(gotoKundeordre);
} while (result.next());
Thread.sleep(0);
}
} catch (SQLException | InterruptedException e) {
e.printStackTrace(); // Udskriver fejl hvis der er SQLException
}
}
});
getKundeOrdrer.start();
Kan ikke hitte ud af hvad der er galt, nogle forslag til ændringer?