Zum Inhalt springen

JTable nach Änderungen aktualisieren


Empfohlene Beiträge

Geschrieben

Hallo!

Ich habe eine Anwendung gebaut die unter Swing eine Öberfläche erstellt in der eine JTable mittels SQL Select mit Daten aus einer Oracle Datenbank gefüllt wird.

Soweit so gut,... ich kann auch einzelne Zellen markieren und mit einem Actionistener diese "Löschen" in dem ich einen Update in der Datenbank durchführe und ein Flag auf N stat Y setze. Die Datensätze dürfen physikalisch nicht gelöscht werden nur "inaktiv" gesetzt werden.

Wie schaffe ich es das nach dem Update der Datenbank auf die Tabelle in der Ansicht geupdated wird ?? Ich habe schon mit FireTableDataChanged probiert, ich habe es mit repaint() probiert nichts hilft. Wer kann mir da den nötigen Denkanstoß geben ??

Quelltext:

// Zweites Panel Produkte

try {

// SQL-Select-Befehl

sql = "SELECT PRODUKT FROM PRODUKTE WHERE AKTIV='Y' ORDER BY ID";

stmt = con.createStatement();

result = stmt.executeQuery(sql);

ResultSetMetaData metaData = result.getMetaData();

int numberOfColumns = metaData.getColumnCount();

Vector columnNames = new Vector();

columnNames.addElement("Produkt");

//Alle Reihen einlesen

Vector rows = new Vector();

while (result.next()) {

Vector newRow = new Vector();

for (int i = 1; i <= metaData.getColumnCount(); i++) {

newRow.addElement(result.getObject(i));

}

rows.addElement(newRow);

}

result.close();

stmt.close();

tabelle1 = new JTable(rows, columnNames);

tabelle1.getTableHeader().setReorderingAllowed(false);

} catch (SQLException e) {

JOptionPane.showMessageDialog(

null,

"Fehler beim Auslesen der Datensätze",

"Administration - Produkte - Einlesen",

JOptionPane.ERROR_MESSAGE);

}

JScrollPane jsp1 = new JScrollPane(tabelle1);

pan2.add(jsp1, BorderLayout.CENTER);

JButton but_akt_p2 = new JButton("Aktualisieren");

JButton but_neu_p2 = new JButton("Neuer Datensatz");

JButton but_del_p2 = new JButton("Löschen");

but_del_p2.setEnabled(true);

but_akt_p2.setEnabled(false);

Box box2 = Box.createHorizontalBox();

box2.add(but_akt_p2);

box2.add(but_neu_p2);

box2.add(but_del_p2);

// Button "Neuer Datensatz"

but_neu_p2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

String ret =

(String) JOptionPane.showInputDialog(

getContentPane(),

"Bitte neuen Datensatz eingeben");

System.out.println(ret);

try {

sql =

"INSERT INTO PRODUKTE VALUES(PROD_SEQ.NEXTVAL,'"

+ ret

+ "','Y')";

stmt = con.createStatement();

result = stmt.executeQuery(sql);

result.close();

stmt.close();

} catch (SQLException exp) {

JOptionPane.showMessageDialog(

null,

"Fehler beim Anlegen des Datensatzes",

"Administration - Produkte - Eingabe",

JOptionPane.ERROR_MESSAGE);

}

}

});

// Funktion "Löschen" implementieren durch setzen des Aktiv-Flags auf 'N'

but_del_p2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

int selected= tabelle1.getSelectedRow();

try {

sql = "UPDATE PRODUKTE SET AKTIV='N' WHERE ID="+selected+"";

stmt = con.createStatement();

result = stmt.executeQuery(sql);

result.close();

stmt.close();

tabelle1.firePropertyChange(sql,true, true);

} catch (SQLException e) {

}

}

});

pan2.add(box2, BorderLayout.SOUTH);

  • 3 Monate später...
Geschrieben

Hallo,

Ich bekomme es einfach nicht hin, ich habe nun schon so oft dran rumgedoktert, ich weiß nicht wie ich meine Daten aus meiner SQL Abfrage in mein Tablemodel bekomme. Im Moment übergebe ich die Daten in einem Vector, ich weiß aber nicht wie ich den Code anpasse damit das mit einem Object (?) funktioniert!

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...