Übernehmen von Inhalten aus Zellen in JTables ohne Return

Status
Nicht offen für weitere Antworten.

Stefan_K

Neues Mitglied
Hallo zusammen,

in meiner Java-Klasse können in einem JTable auch bestimmte Spalten editiert werden. Dazu verwende ich einen eigenen Listener, der das Interface TableModelListener mit der Methode tableChanged implementiert:

Code:
private class MyTableModelListener implements TableModelListener {
        JTable table;

    public MyTableModelListener(JTable table) {
        this.table = table;
    }

        public void tableChanged(TableModelEvent e) {
            String spaltenName = this.table.getModel().getColumnName(e.getColumn());
            if (e.getType() == TableModelEvent.UPDATE) {
                if (spaltenName.equalsIgnoreCase(MyTableModel.COL_EINTR_DATUM) 
                                 || spaltenName.equalsIgnoreCase(MyTableModel.COL_AUSTR_DATUM)) {
                    int selectedRow = e.getFirstRow();
                    int column = e.getColumn();
                    String wertNeu = clPersonen.getModel().getValueAt(selectedRow, column).toString();
                    firePropertyChange(PERS_PROP_CH_CELLUPDATE, e.getColumn(), wertNeu);
                }
            }
        }
}


Dieser hört auf einen TableModelEvent, der in dem Model des Tables duch die Methode fireTableCellUpdated ausgelöst wird. Dies passiert in der überschriebenen Methode setValue des Models.

Code:
 public void setValueAt(Object value, int row, int col) {
             String fehlerText = "";
             .
             .
             .
                 if (fehlerText.length() > 0) {
                    JOptionPane.showMessageDialog(new JDialog(), fehlerText, "GEWAN Fehler", JOptionPane.ERROR_MESSAGE);
                } else {
                    int iOrder = row;
                    if (getSortListe() != null) {
                        iOrder = Integer.parseInt(getSortListe().get(row).toString());
                    }
                    data[iOrder][col] = value;
                    fireTableCellUpdated(row, col);
                }
}


Diese Methode wird aber nur ausgelöst, wenn der Anwender nach Eingabe des Wertes entweder die Enter-Taste oder die Tab-Taste betätigt.

Meine Frage ist nun, ob ich den TableModelEvent auch schon auslösen kann ohne eine Betätigung dieser Tasten. Der Anwender will die Möglichkeit haben, den Inhalt des Tables nach Eingabe der Änderung in den betroffenen Zellen gleich nach Drücken eines entsprechenden Buttons abzuspeichern.

Ich bin für jeden Hinweis dankbar

Stefan K.
 

Ebenius

Top Contributor
Hilft das da?
Code:
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
 

Stefan_K

Neues Mitglied
Hallo Ebenius,

vielen Dank für die Lösung. Hätte nicht gedacht, dass das so einfach funktioniert.
Eine Frage hätte ich aber noch:
Ich habe nirgends gefunden, wo diese Property abgelegt ist bzw. welche Properties für Tables man überhaupt setzen kann.

Stefan K.
 

Ebenius

Top Contributor
Die "sauberere" Variante ist imho ein FocusListener, mit focusLost und darin
Code:
myTable.getCellEditor().stopCellEditing();
Stimmt. Ganz bestimmt ist es sauberer eine Funktionalität die im JRE schon drin und getestet ist und nur eingeschaltet werden muss selber zu implementieren. :rolleyes:

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Übernehmen Button AWT, Swing, JavaFX & SWT 2
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Skallierung von Gridpane Inhalten AWT, Swing, JavaFX & SWT 1
M SWT ComboBox mit DB-Inhalten Designfrage AWT, Swing, JavaFX & SWT 5
G Rechnen mit SWT Inhalten AWT, Swing, JavaFX & SWT 2
dzim JFace TableViewer mit verschiedenen Inhalten AWT, Swing, JavaFX & SWT 4
M JList mit interaktiven Inhalten AWT, Swing, JavaFX & SWT 2
P Resize von ScrollPane Inhalten AWT, Swing, JavaFX & SWT 2
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
I JavaFX Zellen in Tableview editieren AWT, Swing, JavaFX & SWT 0
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
B JavaFX TableView-Zellen sollen automatisch so groß wie der größte Inhalt sein AWT, Swing, JavaFX & SWT 6
J Tableview - kann man mit Enter die Zellen wechseln AWT, Swing, JavaFX & SWT 1
S JavaFX GridPane Zellen Seitenverhätnis passend ändern mit der Stage AWT, Swing, JavaFX & SWT 0
E JavaFX TableView mit Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 5
L Swing CellRenderer für einzelne Zellen? AWT, Swing, JavaFX & SWT 5
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
J Zellen in JavaFx einfärben funktioniert nicht AWT, Swing, JavaFX & SWT 1
A Swing JTable Umgang mit Zellen AWT, Swing, JavaFX & SWT 2
S Swing Zeilenumbruch in JTable Zellen AWT, Swing, JavaFX & SWT 3
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
M Swing Jtable zellen zentrieren AWT, Swing, JavaFX & SWT 4
J CellEditorListener wird für ALLE Zellen ausgeführt AWT, Swing, JavaFX & SWT 2
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
M JTable Zeilen und Zellen einfärben AWT, Swing, JavaFX & SWT 11
GUI-Programmer JTable - zentrierte Zellen AWT, Swing, JavaFX & SWT 2
K Swing CellEditor für einzelne Zellen AWT, Swing, JavaFX & SWT 2
B JTable Selektion von Zellen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing JTable Zellen intelligenter Zeilenumbruch AWT, Swing, JavaFX & SWT 4
K Swing JTable Editierfunktion für einzelne Zellen ausschalten AWT, Swing, JavaFX & SWT 3
E Swing zellen fixen AWT, Swing, JavaFX & SWT 7
X JTable Zellen nicht editierbar AWT, Swing, JavaFX & SWT 5
S Swing JTable - Editierung von Zellen abfangen AWT, Swing, JavaFX & SWT 3
C [SWT] Widget Table verliert nach Sortierung farbige / eingefärbter Background / Zellen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing jTable (bestimmte Zellen umrahmen) AWT, Swing, JavaFX & SWT 8
T JTable Zellen Farbe AWT, Swing, JavaFX & SWT 13
N Swing JTable: Zellen verbinden AWT, Swing, JavaFX & SWT 11
N Zellen einer JTable unterschiedlich formatieren AWT, Swing, JavaFX & SWT 7
D Swing JTable, Zellen-Farbe über Koordinaten ändern AWT, Swing, JavaFX & SWT 9
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
D Swing JTable Problem bei automatischem update von Zellen AWT, Swing, JavaFX & SWT 3
G JTable Multiple Row Header Example - Probleme mit der Höhe der Zellen AWT, Swing, JavaFX & SWT 4
C Swing JTable: Horizontale Linie bei einzelnen Zellen ausblenden AWT, Swing, JavaFX & SWT 5
C JTable: Alle selektierten Zellen abfangen AWT, Swing, JavaFX & SWT 13
C GridBagLayout Zellen verbinden AWT, Swing, JavaFX & SWT 13
V Nur zulässige Zeichen in JTable-Zellen eintragen können AWT, Swing, JavaFX & SWT 2
C Spielfeld Gitter - Einzelne Zellen verändern AWT, Swing, JavaFX & SWT 18
J CellRenderer einzelne zellen Hintergrund AWT, Swing, JavaFX & SWT 9
F Text Vertical in Zellen von JTable AWT, Swing, JavaFX & SWT 3
B Swing Drag&Drop einzelner Zellen in einer JTable AWT, Swing, JavaFX & SWT 12
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
A Flexible JTable mit editierbaren Zellen,abhängig von Data AWT, Swing, JavaFX & SWT 2
C JTable und farbige Zellen AWT, Swing, JavaFX & SWT 5
R JTable: Zellen einer Spalte unterschiedlich befüllen AWT, Swing, JavaFX & SWT 2
R JTable: Zellen einer Zeile zusammenfassen? AWT, Swing, JavaFX & SWT 3
R JTable darstellen von leeren Zellen AWT, Swing, JavaFX & SWT 12
E Drag&Drop JTable; Renderer füllt alle Zellen AWT, Swing, JavaFX & SWT 10
R JTable updatePaint() angabe der geänderten Zellen AWT, Swing, JavaFX & SWT 3
R JTable mehrere Zellen mit Shift selektieren AWT, Swing, JavaFX & SWT 2
R JTable einzelne Zellen selektieren AWT, Swing, JavaFX & SWT 7
R JTable - Rendern der einzelnen Zellen AWT, Swing, JavaFX & SWT 3
G nicht editierbare Zellen AWT, Swing, JavaFX & SWT 15
X in JTable nur einige Zellen editierbar machen AWT, Swing, JavaFX & SWT 2
T Zellen editierbar oder nicht AWT, Swing, JavaFX & SWT 6
T JTree: Beschriftung der Zellen AWT, Swing, JavaFX & SWT 3
G JTable: Spalten & Zellen fixieren wie in Excel AWT, Swing, JavaFX & SWT 4
G JTable Zellen makieren AWT, Swing, JavaFX & SWT 2
M JTable Zelle ändern -> andere Zellen mit ändern AWT, Swing, JavaFX & SWT 5
J JTable Zellen und Header AWT, Swing, JavaFX & SWT 2
W Zellen Inhalt beim editieren markieren AWT, Swing, JavaFX & SWT 2
C Zellen editieren AWT, Swing, JavaFX & SWT 4
A Zellen in JTable auf Klick kurz markieren auf Klick AWT, Swing, JavaFX & SWT 2
J JTabel: TableHeader und Zellen Problem AWT, Swing, JavaFX & SWT 2
E JTable; DefaultTableCellRenderer. Zellen farbig befüllen. AWT, Swing, JavaFX & SWT 5
E JTable-während der Einfügezeit der Zellen in die Table AWT, Swing, JavaFX & SWT 2
F Zellen über eine Grafik legen AWT, Swing, JavaFX & SWT 7
H JTable Text aus mehreren Zellen in einer Spalte kopieren? AWT, Swing, JavaFX & SWT 3
M [Swing] Kalender mit JTable / Einfärben von Zellen AWT, Swing, JavaFX & SWT 10
A JTable, mehrere Zellen markieren AWT, Swing, JavaFX & SWT 3
J [SWT] alle Zellen in einem Tree einzeln selektieren AWT, Swing, JavaFX & SWT 2
L Again: In JTable bestimmte Zellen färben AWT, Swing, JavaFX & SWT 12
M CellEditor für individuelle Zellen in JTable AWT, Swing, JavaFX & SWT 3
G JTable(Zellen) und JPanel AWT, Swing, JavaFX & SWT 2
D Im JTable bei einzelnen Zellen die Farbe ändern AWT, Swing, JavaFX & SWT 3
G Rowspan (Zellen verbinden) in JTable? AWT, Swing, JavaFX & SWT 3
R JTable Zellen markieren AWT, Swing, JavaFX & SWT 3
R JTable, automatischer resize der Zellen nach einer Eingabe AWT, Swing, JavaFX & SWT 4
T JTable, Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 23
B einzelne Zellen scrollbar machen innerhalb einer Tabelle AWT, Swing, JavaFX & SWT 3
I einzelne Zellen bei JTable markieren AWT, Swing, JavaFX & SWT 3
M JTable und Farbe von Zellen AWT, Swing, JavaFX & SWT 2
J Zellen editieren ausschalten AWT, Swing, JavaFX & SWT 2
G Zellen in JTable alphabetisch sortieren AWT, Swing, JavaFX & SWT 13
N JTable - Problem mit markieren von Zellen AWT, Swing, JavaFX & SWT 3
B JTable-Zellen einfärben AWT, Swing, JavaFX & SWT 6
W JTable Zellen verbinden AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben