Wenn du mich fragst, dann ist die Spalte "Nummer" blödsinn. Bzw. würde ich diese löschen und nur über die Namensspalte gehen. Oder diese Vielleicht in Vor- und Nachname aufsplitten. Oder wofür brauchst du die Nummer spezifisch zum Namen in der Datenbank?
Meiner Meinung nach wäre diese höchstens ausschließlich in der Anzeige sinnvoll. Und dann auch jedes mal neu Vergeben damit die Namenssortierung noch stimmt.
Heut ist zwar schon dein Prüfungsfreitag, aber ich zeig dir mal wie ich es gemacht hätte:
Dein TableModel besteht aus 2 Objecten: a) Datas & b) Columnnames
Hier mal ein bissel Code, damit ungefähr klar ist wie ich es meine:
Ein Insert oder Update würde ebenfalls so ähnlich funktionieren/aussehen.
Vielleicht hilft die das ja ein bissel weiter.
Meiner Meinung nach wäre diese höchstens ausschließlich in der Anzeige sinnvoll. Und dann auch jedes mal neu Vergeben damit die Namenssortierung noch stimmt.
Heut ist zwar schon dein Prüfungsfreitag, aber ich zeig dir mal wie ich es gemacht hätte:
Dein TableModel besteht aus 2 Objecten: a) Datas & b) Columnnames
Hier mal ein bissel Code, damit ungefähr klar ist wie ich es meine:
Code:
private Object[] columnNames;
private Object[][] rowData;
private JTable table;
private TableModel model;
//Initialisierung der Objecte
public blubb(){
//Hier schön viel grafischer Schnickschnack :)
...
model = new DefaultTableModel(new Object[0][0], new Object[0]);
table = new JTable(model);
...
}
//Methode holt aktuelle Daten aus der Tabelle
// und füllen der Objecte rowData + columNames
void getNewDatas(){
...
}
//Methode zum updaten der Tabelle
private void tableupdate(){
getNewDatas();
try{
table=null;
DefaultTableModel mod = (DefaultTableModel) model;
mod.setDataVector(rowData, columnNames);
mod = null;
table.setModel(model);
table.updateUI();
System.out.println("finnished");
}catch(Exception e){System.out.println(e.getMessage());}
//Entfernen einer Zeile aus der Datenbank
private void loescheZeile(){
int irow=0;
int icol=0:
String sname ="";
irow = row=table.getSelectedRow();
sname = (String)table.getValueAt(irow,1)
//hier jetzt Datenbankverbindung & löschen der Daten in der Datenbank(abermals extraMethode)
...
String sql = "DELETE * from Geburtstagstabelle WHERE Name="+sname;
...
//Jetzt wieder Tabelle neu aus der DB laden mit:
tableupdate();
}
}
Vielleicht hilft die das ja ein bissel weiter.