Guten Tag!
Ich brauche bitte Hilfe mit meiner JTable / DefaultTableModel.
Und zwar habe ich eine Klasse namens Tables (s.u.), wo eine JTable drin ist und bei Programmstart befüllt wird.
Und dann hab ich noch eine Klasse, nennen wir sie "Klasse X" in der die Daten (die aus einer Datenbank eingelesen werden) verändert werden.
Was ich machen möchte: Nachdem die Daten verändert wurden soll die JTable aktualisiert werden.
Wie man unten sieht hab ich es (unter anderem) mit einem TableModelListener und der Funktion fireTableDataChanged(); probiert, die leider einfach mal garnix tut. Oder muss man die noch irgendwie anstoßen, wenn ja wie ?
Welchen Weg empfehlt ihr mir um die JTable (die ja nun leider in einer anderen Klasse liegt) zu updaten?
Danke schonmal.
mfG
Ich brauche bitte Hilfe mit meiner JTable / DefaultTableModel.
Und zwar habe ich eine Klasse namens Tables (s.u.), wo eine JTable drin ist und bei Programmstart befüllt wird.
Und dann hab ich noch eine Klasse, nennen wir sie "Klasse X" in der die Daten (die aus einer Datenbank eingelesen werden) verändert werden.
Was ich machen möchte: Nachdem die Daten verändert wurden soll die JTable aktualisiert werden.
Wie man unten sieht hab ich es (unter anderem) mit einem TableModelListener und der Funktion fireTableDataChanged(); probiert, die leider einfach mal garnix tut. Oder muss man die noch irgendwie anstoßen, wenn ja wie ?
Welchen Weg empfehlt ihr mir um die JTable (die ja nun leider in einer anderen Klasse liegt) zu updaten?
Danke schonmal.
mfG
Java:
public class Tables extends JPanel {
private static final long serialVersionUID = 1L;
private JScrollPane tabelle_fleisten;
private JTable contenttable_fleisten;
private DefaultTableModel model_fleisten;
private JPanel panel_fleisten;
private Fleiste[] fleisten_liste = new Fleiste[2000];
public Tables ()
{
// set up FlowLayout
setLayout(new FlowLayout());
// Tabelle anlegen und initialisieren
Data daten = Data.getInstance();
fleisten_liste = daten.getFleisten();
model_fleisten = new DefaultTableModel();
model_fleisten.addColumn("Bezeichnung");
model_fleisten.addColumn("Beschichtung");
model_fleisten.addColumn("Identnummer");
model_fleisten.addColumn("Preis");
for (Fleiste k : fleisten_liste)
{
if (k!= null)
{
model_fleisten.addRow(new Object[]{k.getBezeichnung(),k.getBeschichtung(),k.getIdentnummer(), k.getPreis()});
}
else
{
break;
}
}
tabelle_fleisten = new JScrollPane();
contenttable_fleisten = new JTable(model_fleisten);
panel_fleisten = new JPanel();
panel_fleisten.setBorder (BorderFactory.createTitledBorder (BorderFactory.createEmptyBorder(),
"Führungsleisten",
TitledBorder.CENTER,
TitledBorder.TOP));
panel_fleisten.add(tabelle_fleisten);
add(panel_fleisten);
tabelle_fleisten.add(contenttable_fleisten);
tabelle_fleisten.setViewportView(contenttable_fleisten);
// model_fleisten.addTableModelListener(new TableModelListener() {
//
// @Override
// public void tableChanged(TableModelEvent TME) {
// model_fleisten.fireTableDataChanged();
// }
// });
updateUI();
}
}
Zuletzt bearbeitet: