mercredi 22 avril 2015

JTable updaten

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

Java Code:

  1. public class Tables extends JPanel {
  2.  
  3. private static final long serialVersionUID = 1L;
  4.  
  5. private JScrollPane tabelle_fleisten;
  6. private JTable contenttable_fleisten;
  7. private DefaultTableModel model_fleisten;
  8. private JPanel panel_fleisten;
  9.  
  10. private Fleiste[] fleisten_liste = new Fleiste[2000];
  11.  
  12.  
  13. public Tables ()
  14. {
  15.  
  16. // set up FlowLayout
  17. setLayout(new FlowLayout());
  18.  
  19. // Tabelle anlegen und initialisieren
  20.  
  21. Data daten = Data.getInstance();
  22.  
  23. fleisten_liste = daten.getFleisten();
  24.  
  25. model_fleisten = new DefaultTableModel();
  26. model_fleisten.addColumn("Bezeichnung");
  27. model_fleisten.addColumn("Beschichtung");
  28. model_fleisten.addColumn("Identnummer");
  29. model_fleisten.addColumn("Preis");
  30.  
  31. for (Fleiste k : fleisten_liste)
  32. {
  33. if (k!= null)
  34. {
  35. model_fleisten.addRow(new Object[]{k.getBezeichnung(),k.getBeschichtung(),k.getIdentnummer(), k.getPreis()});
  36. }
  37. else
  38. {
  39. break;
  40. }
  41. }
  42.  
  43.  
  44. tabelle_fleisten = new JScrollPane();
  45. contenttable_fleisten = new JTable(model_fleisten);
  46. panel_fleisten = new JPanel();
  47. panel_fleisten.setBorder (BorderFactory.createTitledBorder (BorderFactory.createEmptyBorder(),
  48. "Führungsleisten",
  49. TitledBorder.CENTER,
  50. panel_fleisten.add(tabelle_fleisten);
  51. add(panel_fleisten);
  52. tabelle_fleisten.add(contenttable_fleisten);
  53. tabelle_fleisten.setViewportView(contenttable_fleisten);
  54.  
  55. // model_fleisten.addTableModelListener(new TableModelListener() {
  56. //
  57. // @Override
  58. // public void tableChanged(TableModelEvent TME) {
  59. // model_fleisten.fireTableDataChanged();
  60. // }
  61. // });
  62.  
  63. updateUI();
  64.  
  65. }
  66.  
  67. }


JTable updaten

0 commentaires:

Enregistrer un commentaire