Swing Letzte Änderung in der Tabelle wird nicht gespeichert

kodela

Bekanntes Mitglied
Hallo,

in einem ListenFrame habe ich eine JTable-Liste mit 6 Spalten eingebunden. Der Inhalt der sechsten Spalte ist editierbar.

Die Tabelle funktioniert mit einer Ausnahme rundum einwandfrei. Die Ausnahme:
Wenn in der sechsten Spalte etwas verändert wird und diese Änderung ist noch nicht abgeschlossen, also der Textcursor ist noch in diesem Feld, wenn jetzt das ListenFrame geschlossen wird, wird die Änderung nicht gespeichert. Dieses Manko kann ich zwar umgehen, wenn ich vor dem Schließen irgend ein anderes Feld in der selben oder einer anderen Zeile selektiere. Das kann man aber übersehen und dann ist die Änderung verloren.

Ich habe schon diverse Versuche gemacht, zum Beispiel vor dem Schließen noch stopCellEditing() aufgerufen. Bisher habe ich aber noch keine Lösung gefunden. Kenn sich jemand besser aus mit JTable als ich und kann mir einen Tipp geben?

Gruß, kodela
 

kodela

Bekanntes Mitglied
Hallo,

die Daten werden bei mir immer dann gespeichert, wenn das ListenFrame den Fokus verliert. Das läuft über folgende Methode ab:
Java:
private void formWindowDeactivated(java.awt.event.WindowEvent evt) { 
    String tst = String.valueOf(listenModel.getValueAt(0, 5));            // nur zum Testen
    listeEditor.stopCellEditing();
    listenModel.datenSpeichern(strApp.getUserDir(), "str8ts.lst", true);
}

Die Abfrage beim Aufruf dieser Methode zeigt, dass für die editierte Zelle der ursprüngliche Wert zurückgegeben wird und nicht der aktuelle.

Gruß, kodela
 

mihe7

Top Contributor
Java:
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class Test {
    public void run() {
        DefaultTableModel model = new DefaultTableModel(5, 10);
       
        final JTable table = new JTable(new LoggingTableModel(model));
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                if (table.isEditing()) {
                    table.getCellEditor().stopCellEditing();
                }
                e.getWindow().dispose();
            }
        });
        frame.add(new JScrollPane(table));
        frame.setVisible(true);
        frame.setSize(800, 600);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
Das LoggingTableModel kannst Du ignorieren, das dient mir nur zu ... Logging-Zwecken :)
 

kodela

Bekanntes Mitglied
Danke mihe7,

das war es. Jetzt sieht die Methode, die immer dann aufgerufen wird, wenn das ListenFrame den Fokus verliert, bei mir so aus:
Java:
private void formWindowDeactivated(java.awt.event.WindowEvent evt) {                                    
    if (jTable.isEditing()) {
        jTable.getCellEditor().stopCellEditing();
    }
    listenModel.datenSpeichern(strApp.getUserDir(), "str8ts.lst");
}
und damit funktioniert alles so, wie ich es wollte. Bei mir ist einiges natürlich anders, als in Deinem Beispiel, das ändert aber an der grundsätzlichen Vorgehensweise nichts.

Nochmals vielen Dank für die kompetente und schnelle Hilfe,
kodela
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JTable - Letzte Änderung wird nicht übernommen AWT, Swing, JavaFX & SWT 5
M letzte Maske merken AWT, Swing, JavaFX & SWT 1
D Swing Letzte Zeile einer JTable nicht über RowSorter sotieren AWT, Swing, JavaFX & SWT 2
B Swing JList Letzte Einträge oben ... AWT, Swing, JavaFX & SWT 6
M Text in txt-Datei in letzte Zeile schreiben? AWT, Swing, JavaFX & SWT 14
R JTable immer nur die letzte Spalte markiert.... AWT, Swing, JavaFX & SWT 4
R das letzte JLabel in der Schleife will nicht an seinen Platz AWT, Swing, JavaFX & SWT 2
E JTable letzte Zeile in Fett schrift? AWT, Swing, JavaFX & SWT 3
A Prob:Tabelle bei Zellensprung: Letzte zeile doppelt sichtbar AWT, Swing, JavaFX & SWT 7
J Zugriff auf letzte Klasse AWT, Swing, JavaFX & SWT 4
Saxony JTextPane - letzte Zeile löschen AWT, Swing, JavaFX & SWT 4
K JTable: letzte Zeile immer sichtbar AWT, Swing, JavaFX & SWT 2
C JTable: Einträge werden dupliziert, um letzte Reihe zu fülle AWT, Swing, JavaFX & SWT 3
F JTree Letzte Node auswählen AWT, Swing, JavaFX & SWT 8
F Letzte Zeile der JTextArea auslesen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
melaniemueller Reaktion auf Änderung im Kombinationsfeld AWT, Swing, JavaFX & SWT 5
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
L JSplitPane - auf Änderung reagieren AWT, Swing, JavaFX & SWT 4
S Swing Bild auf jPanel nach Änderung von JComboBox zeichnen AWT, Swing, JavaFX & SWT 4
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
A Swing Suche Listener für beliebige Änderung an GUI Items/Controls AWT, Swing, JavaFX & SWT 8
TheWhiteShadow JList-Inhalt nach Änderung weg AWT, Swing, JavaFX & SWT 3
H Swing Auf Änderung bei JRadioButton reagieren. AWT, Swing, JavaFX & SWT 3
C Swing Änderung der Tastatur-Navigation in einer JTable AWT, Swing, JavaFX & SWT 4
G Components erscheinen erst bei Änderung des Frames AWT, Swing, JavaFX & SWT 3
N Swing Dynamisches Verhalten bei Änderung Fenstergröße AWT, Swing, JavaFX & SWT 6
P Bilder werden nach Änderung nicht angezeigt AWT, Swing, JavaFX & SWT 15
P Swing Event das ausgelöst wird, sobald Änderung der Größe Abgeschlossen ist AWT, Swing, JavaFX & SWT 4
D LayoutManager GridBagLayout, Änderung zur Laufzeit AWT, Swing, JavaFX & SWT 4
jueki Event bei Änderung der Spaltenbreite in einem JTable AWT, Swing, JavaFX & SWT 15
S Swing JTable nach einer Änderung einer Zelle komplett aktualisieren. AWT, Swing, JavaFX & SWT 10
Milady Swing Änderung von Daten mit sql AWT, Swing, JavaFX & SWT 2
E 2 Frames - eine Änderung AWT, Swing, JavaFX & SWT 4
T JTable erst nach Änderung der Spaltenbreite neu zeichnen AWT, Swing, JavaFX & SWT 10
Balbes Änderung des Wertes von JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 4
I Swing Bild wird erst bei manueller Änderung der Fenstergrösse gezeichnet AWT, Swing, JavaFX & SWT 3
hdi Swing setPreferredSize zeigt keine Änderung AWT, Swing, JavaFX & SWT 2
F JFrame Änderung der Größe erkennen AWT, Swing, JavaFX & SWT 2
J Font Änderung nach Editorwechsel? AWT, Swing, JavaFX & SWT 3
M JTable alte Daten vor Änderung abfangen AWT, Swing, JavaFX & SWT 11
S Wichtige Frage zu JTextField-Reaktion auf Änderung des Inhal AWT, Swing, JavaFX & SWT 6
B Auf Fenster Pos.Änderung reagieren und 2. Fenster andocken AWT, Swing, JavaFX & SWT 10
J jTable, welcher listener für Änderung der Spaltenbreite AWT, Swing, JavaFX & SWT 2
P Änderung der Fenstergrösse abragen und reagieren. AWT, Swing, JavaFX & SWT 3
G Bei Änderung an einem Texfeld in SWT eine Aktion AWT, Swing, JavaFX & SWT 3
S JTree - bei Änderung in DB neu zeichnen AWT, Swing, JavaFX & SWT 5
G Dringend ! SWT-Table übernimmt Änderung nicht AWT, Swing, JavaFX & SWT 2
G Auf Fenstergrößen-Änderung reagieren AWT, Swing, JavaFX & SWT 10
J JTable Änderung erst beim Zeilenwechsel AWT, Swing, JavaFX & SWT 5
M JTree nach LaF-Änderung komisch AWT, Swing, JavaFX & SWT 4
M GUI-Repaint nach Änderung der Fenstergröße AWT, Swing, JavaFX & SWT 2
W Kleine Sub-Tabelle in SpreadsheetView-Zelle anzeigen AWT, Swing, JavaFX & SWT 9
K Tabelle zu Datenbank hinzufügen / Apache Derby AWT, Swing, JavaFX & SWT 7
izoards JavaFX editierbare Tabelle AWT, Swing, JavaFX & SWT 4
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
T Zelle- und die Zeile-Farbenwechsel bei der Selektion in der Tabelle AWT, Swing, JavaFX & SWT 4
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
W JavaFX Tabelle zeilenweise mit Werten füllen und an Container anpassen AWT, Swing, JavaFX & SWT 23
F JavaFX Tabelle mit gespeicherten Eingabe Werten AWT, Swing, JavaFX & SWT 8
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
A Swing Tabelle wird bei Betätigung des Button nicht befüllt AWT, Swing, JavaFX & SWT 17
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
MrSnake Tabelle nach 2 Strings Filtern AWT, Swing, JavaFX & SWT 3
D Filter in Tabelle Sql AWT, Swing, JavaFX & SWT 6
M JavaFX Tabelle flexibler Länge AWT, Swing, JavaFX & SWT 3
T Swing Tabelle mit Button - Anzeigefehler nach Zeile entfernen AWT, Swing, JavaFX & SWT 1
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
J JavaFX Tabelle soll ganze Seite ausfüllen AWT, Swing, JavaFX & SWT 2
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
D Swing Eigene Tabelle AWT, Swing, JavaFX & SWT 18
M Filter in die JFace/SWT Tabelle einbauen AWT, Swing, JavaFX & SWT 5
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
J JavaFX eine Art Tabelle, jedoch mit mehreren Zeilen AWT, Swing, JavaFX & SWT 2
P Swing Klick in Tabelle nicht möglich AWT, Swing, JavaFX & SWT 0
Thallius Swing Tabelle nach Datumsspalte sortieren AWT, Swing, JavaFX & SWT 4
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
E Tabelle zeigt nicht neuste Datenbankeinträge an AWT, Swing, JavaFX & SWT 5
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
D Swing JTable- Meine Tabelle der Klasse JTable wird nur bedingt angezeigt AWT, Swing, JavaFX & SWT 4
O Tabelle "animiert" Scrollen AWT, Swing, JavaFX & SWT 1
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
G JavaFX ComboBoxTableCell für Zuordnung in Tabelle AWT, Swing, JavaFX & SWT 2
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
L Tabelle reagiert ungewollt auf Mausklick AWT, Swing, JavaFX & SWT 6
C Verschiebbare "Buttons" in einer Tabelle AWT, Swing, JavaFX & SWT 3
S Swing Tabelle mit Model bei eingeschaltetem Filter synchronisieren AWT, Swing, JavaFX & SWT 6
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
B LayoutManager Tabelle repainten AWT, Swing, JavaFX & SWT 4
K Swing JTable Text im Hintergrund einer leeren Tabelle AWT, Swing, JavaFX & SWT 3
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
F Elementbezeichnung in der Tabelle AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben