Servus Gemeinde,
für ein Vordruck habe ich mir ein JTextField mit einem PlainDocument gebaut.
Das Format sieht wie folgt aus:
Nur Zahlen ..
12/345678/A1
Das A wird durch vom Programm eingesetzt
Jetzt ist es so, dass die Trennstriche automatisch gesetzt werden. Wenn der Cursor beispielsweise vor der '3' steht und der Nutzer nun die '2' löschen möchte, dann muss er zuvor den Trennstrich löschen.
Meine Frage ist nun, ob ihr eine Idee habt, wie er sowohl den Trennstrich, als auch die '2' mit einem Mal löschen kann.
Das Problem bislang ist nämlich, dass wenn er den Strich gelöscht hat (nicht die '2') und gleich anschließend die '3' neu schreiben möchte, der Trennstrich nicht gesetzt wird.
Etwas einfacher: Eine Methode, die sowohl beim Schreiben, aber auch beim Löschen die Trennstriche automatisch schreibt/löscht.
Die dt. Bezeichnungen werden später noch geändert.
Mit einem Gruss
Thomas
für ein Vordruck habe ich mir ein JTextField mit einem PlainDocument gebaut.
Das Format sieht wie folgt aus:
Nur Zahlen ..
12/345678/A1
Das A wird durch vom Programm eingesetzt
Java:
tf_Vorgangsnummer1.setDocument(new PlainDocument()
{ // Textfeld nur für Zahleneingabe zulassen
public void insertString(int offset, String str, AttributeSet a)
throws BadLocationException {
if(cb_Vordruck1.getSelectedItem().equals("Pol 750") && getLengthFromTimeField(tf_Vorgangsnummer1)== 1){
tf_Vorgangsnummer1.setText(tf_Vorgangsnummer1.getText() + "/");
}
if(cb_Vordruck1.getSelectedItem().equals("Pol 750") && getLengthFromTimeField(tf_Vorgangsnummer1)== 8){
tf_Vorgangsnummer1.setText(tf_Vorgangsnummer1.getText() + "/");
}
if(cb_Vordruck1.getSelectedItem().equals("Pol 750") && getLengthFromTimeField(tf_Vorgangsnummer1)== 13){
tf_Vorgangsnummer1.setText(tf_Vorgangsnummer1.getText() + "/");
}
if(cb_Vordruck1.getSelectedItem().equals("Pol 750") && getLengthFromTimeField(tf_Vorgangsnummer1)== 14){
tf_Vorgangsnummer1.setText(tf_Vorgangsnummer1.getText() + "A");
}
if(getLengthFromTimeField(tf_Vorgangsnummer1)>16){
return;
}
// Eingaben von a und b sind nicht erlaubt...
if (!str.matches(".*[1|2|3|4|5|6|7|8|9|0].*")) {
String classMethodName = new Exception().getStackTrace()[0].getClassName() + "/" + new Exception().getStackTrace()[0].getMethodName();
_Error.getErrorMessage(701, classMethodName, "");
return;
}
super.insertString(offset, str, a);
}
});
Meine Frage ist nun, ob ihr eine Idee habt, wie er sowohl den Trennstrich, als auch die '2' mit einem Mal löschen kann.
Das Problem bislang ist nämlich, dass wenn er den Strich gelöscht hat (nicht die '2') und gleich anschließend die '3' neu schreiben möchte, der Trennstrich nicht gesetzt wird.
Etwas einfacher: Eine Methode, die sowohl beim Schreiben, aber auch beim Löschen die Trennstriche automatisch schreibt/löscht.
Die dt. Bezeichnungen werden später noch geändert.
Mit einem Gruss
Thomas
Zuletzt bearbeitet von einem Moderator: