JFormattedTextField als CellEditor

Matt297

Erfahrenes Mitglied
Hallo Community,
ich verzweifle hier bei dem Versuch, dem Programm meinen Willen beizubringen ;)

Und zwar geht es darum, dass ich das Verhalten eines JFormattedTextFields in einer Tabelle haben möchte, soweit ich weiß geht das über den CellEditor.

Dazu erst mal meinen aktuellen Code:

Java:
JFormattedTextField tf = new JFormattedTextField(new DefaultFormatterFactory(new NumberFormatter(NumberFormat.getCurrencyInstance()),new NumberFormatter(NumberFormat.getCurrencyInstance()),new NumberFormatter(NumberFormat.getNumberInstance())));
tf.setFocusLostBehavior(JFormattedTextField.COMMIT);
tf.setBorder(null);
DefaultCellEditor editor = new DefaultCellEditor(tf);
editor.setClickCountToStart(2);
getJTableBla().getColumnModel().getColumn(6).setCellEditor(editor);

Wenn ich einfach so ein JFormattedTextField mit dem Konstruktor erstelle funktioniert es wunderbar, angezeigt wird es als Währung(x,xx €) und bearbeiten kann ich es als normale Nummer und genau dieses Verhalten brauche ich auch in der Tabelle in der 7ten Spalte der Tabelle.
Das Problem ist jetzt nur, dass es einfach ignoriert wird, ich kann da Buchstaben und alles reinnehmen und es wird auch übernommen was natürlich doof ist.

Hab schon mehrfach gegooglet und es gibt auch mehrere Lösungen zu diesem Thema, aber irgendwie nichts was mir hilft.

Vielen Dank schon einmal im Voraus
Matt
 
Zuletzt bearbeitet von einem Moderator:
Hiho,

ich denke das Problem liegt beim DefaultCellEditor, am besten du schreibst dir einen eigenen...

Java:
class MattsCellEditor extends JFormattedTextField implements TableCellEditor
{
//...
}
 
Hi,

danke, das war der richtige Hinweis. Ich habe herausgefunden, dass im DefaultCellEditor die Validierungs-Funktion des JFormattedTextFields nicht genutzt wird.
Habe mir jetzt nen eigenen CellEditor geschrieben und jetzt gehts wunderbar.
 

Neue Beiträge

Zurück