Input-Check bei Textfeldern in Table

Status
Nicht offen für weitere Antworten.

tinker

Mitglied
Hallo,
ich bräuchte mal wieder eine Anregung. Folgendes Szenario:

Ich hab eine JTable, die zweite Spalte ist editierbar, die anderen nicht. Für die editierbare Spalte hab ich einen eigenen TableCellEditor geschrieben. Dieser liefert für jede Zelle dieser Spalte verschiedene Komponenten, zur Zeit entweder ein JTextField zur normalen Eingabe, oder eine JComboBox mit einer Auswahl. So weit, so gut. Funktioniert alles ohne Probleme. Was jetzt halt noch hinzukommt ist eine Überprüfung der Eingabe, natürlich nur bei den TextFields.

Ausschaun soll der Check wie folgt:
Der User gibt irgend etwas ein und bestätigt mit Enter. Dann soll geprüft werden ob der Wert passt, wenn ja wird er übernommen. Wenn nicht, erscheint eine OptionPane die den Fehler zeigt, bestätigt er mit 'ok' wird in der Table wieder das Feld das er editiert hat ausgewählt und er kann seinen Text anpassen.

Und jetzt stellt sich mir die Frage, wie ich das am Besten mache:

Erster Versuch:
Ich prüf in der setValueAt-Methode des TableModels ob der Wert passt, wenn nicht wird in der Übergeordneten Klasse eine Funktion (checkError) aufgerufen die die OptionPane anzeigt und anschließend das Text-Feld in der Table wieder auswählt.

Probleme die ich zur Zeit bei diesem Ansatz noch habe:
An die checkError-Methode werden rowIndex und columnIndex der setValueAt Methode übergeben, damit ich weiß welche Zelle ich nachdem ich die OptionPane angezeigt habe, auswählen muss.

Die Auswahl passiert mit

table.changeSelection(row, col, toggle, extend);

Problem 1:
Wenn er ich einen Wert eingebe und mit Enter bestätige springt die Auswahl der Table automatisch auf die nächste Zeile, changeSelection bewirkt hier nichts. Komischerweise funktioniert ein

changeSelection(row-1, col, toggle, extend);

schon und er selektiert die Zeile davor, was mir aber nichts bringt.


Problem 2:
Wenn ich die Auswahl wie unter Problem 1 setzte, selektiert er zwar die richtige Zelle, aber man befindet sich nicht direkt im TextField. Man muss die Zelle nochmals anklicken um direkt ins TextField zu kommen und den Wert editieren zu können.


Also sollte der Ansatz grundsätzlich passen, wäre ich über Hilfe zu den beiden Problemen dankbar. Falls ich den Eingabe-Check besser anders lösen sollte, bitte ich um einige Hinweise.

Danke schonmal!
 

tinker

Mitglied
Danke erstmal für den Hinweis.
Komm aber zu keinem Ergebnis:
Ich komm in der Funktion zwar mit this.getCellEditorValue() auf den Wert der in der Zelle steht, aber ich weiß nicht wo ich mich in der Tabelle befinde (row, col). Die Row würd ich aber brauchen um mir die Metadaten zu dieser Zelle zu holen, damit ich weiß welchen check (länge, min-max, typ, ...) ich machen muss.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
raeuchertofu Input bei zwei jTextfields AWT, Swing, JavaFX & SWT 5
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
F JavaFX Checken ob der Input einem festgelegten Format gleicht AWT, Swing, JavaFX & SWT 7
J Event Handling Input auf String testen, Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 4
L Input aus Sub-Fenster Startfenster übergeben AWT, Swing, JavaFX & SWT 5
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
P JOptionPane input und show Message Dialog AWT, Swing, JavaFX & SWT 5
R SWT TreeViewer neuen Input setzen AWT, Swing, JavaFX & SWT 3
L Swing Input Focus eines JTextFields in einer JList AWT, Swing, JavaFX & SWT 2
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
M swt - input message box AWT, Swing, JavaFX & SWT 4
bernd Input Dialog AWT, Swing, JavaFX & SWT 2
S "Quadrat oder Rechteck" - Check AWT, Swing, JavaFX & SWT 3
S jdbc:odbc check connection AWT, Swing, JavaFX & SWT 2
V SWT Table mit SWT.CHECK AWT, Swing, JavaFX & SWT 2
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
kodela Verspätete Anzeige in Textfeldern AWT, Swing, JavaFX & SWT 8
J Event Handling Button "enablen" wenn Eingaben in Textfeldern korrekt sind AWT, Swing, JavaFX & SWT 1
P Text aus TextFeldern tauschen AWT, Swing, JavaFX & SWT 2
F Text von Textfeldern verarbeiten AWT, Swing, JavaFX & SWT 12
P Formular mit n-Textfeldern generieren AWT, Swing, JavaFX & SWT 7
P Applet darstellung von Textfeldern Problem AWT, Swing, JavaFX & SWT 3
Z Wie kann ich Text unter den Textfeldern einfügen? AWT, Swing, JavaFX & SWT 3
E transparenz (alpha) - komisches aussehen von textfeldern! AWT, Swing, JavaFX & SWT 2
D Arbeiten mit 2 TextFeldern gleichzeitig AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben