Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JTable Problem

Empfohlene Antworten

Veröffentlicht

Hi, ich hab in java ein kleines problem mit JTable...

und zwar, wenn ich jetzt eine JTable habe, und dort meine Daten eingebe, und dann mit TAB oder Maus den Zellen "entlang gehe" und am letzten angelangt bin, und alle Daten eingeben habe, und auf mein Speichern knopf drücke, speichert es immer die änderungen von der Zelle nicht ab, wo der cursor nicht war... Des kann man ja umgehen, indem man ENTER drückt, nur des wär eben schön wenns auch ohne ENTER geht. Wisst ihr viell. wie man des umgehen kann?

mfg

Straider

wenn ich jetzt eine JTable habe, und dort meine Daten eingebe, und dann mit TAB oder Maus den Zellen "entlang gehe" und am letzten angelangt bin, und alle Daten eingeben habe, und auf mein Speichern knopf drücke, speichert es immer die änderungen von der Zelle nicht ab, wo der cursor nicht war [...] Wisst ihr viell. wie man des umgehen kann?
Da gibt es keine allgemeine Antwort zu - es kommt auf dein TableModel an. Dort werden die eigentliche Daten gespeichert - die Editor Fields stellen ja lediglich den View da.

Du solltest also als erstes checken, wo die Daten "stecken bleiben". Kommen im Model bereits die neuen Werte an? Werden sie dort in die richtigen Datenstrukturen hineingeschrieben?

Über welchen Mechanismus liest du überhaupt die Daten wieder aus, bevor sie gespeichert werden? Vielleicht werden auch hier einfach alte Objektinstanzen verwendet, die erst bei einem Focusverlust der Editorfelder und nicht bereits beim Setzen von neuen Werten geupdatet werden.

also, hab jetzt mal nachgeschaut, so speichern wir die Daten ab:


    Vector tempDataVector = tableModel.getDataVector();

    int sizeOfDataVector = tempDataVector.size();

    source.removeAllDeclarations();


    for (int i = 0; i < sizeOfDataVector; i++) {

      Vector temp = (Vector) tempDataVector.elementAt(i);

      source.addDeclarationObject(temp.elementAt(1).toString());

      source.setConfDec(true);

    

ich bin mir relativ sicher, dass es noch nicht ins Model abgespeichert wird.

mfg

Straider

ich bin mir relativ sicher, dass es noch nicht ins Model abgespeichert wird.
Kannst du das verifizieren? Bist du mal mit 'nem Debugger eingestiegen und hast dir vor dem und nach dem Speichern angesehen, wie der Inhalt der Objekte aussieht? Ist da alles so, wie es sein sollte?

Ansonsten genau den gleichen Schritt beim Model durchführen. Einen Breakpoint bei setValueAt setzen und herausfinden wo genau die Werte in welche Objekte geschrieben, bzw. nicht geschrieben werden.

Mach dir im Kopf eine Liste mit den Punkten, bei denen das Problem liegen könnte. Dann versuche nach und nach die Punkte abzuarbeiten und zu verifizieren, dass bei Punkt X das Problem nicht liegt. Irgendwann wirst du dann an dem Punkt angekommen sein, wo es kracht.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.