Soulflyer84
Grünschnabel
Hallo...
Um Fehler schon bei der Eingabe auszuschließen habe ich das PlainDocument erweitert mit folgender Methode. Damit Kann ich schonmal nur Großbuchstaben eingeben!
Wie bekomme ich es hin das auch das Leerzeichen geht und kleine Buchstaben?
Mit if(str.matches("[A-Z][a-z]+")) klappt es leider nicht...
Um Fehler schon bei der Eingabe auszuschließen habe ich das PlainDocument erweitert mit folgender Methode. Damit Kann ich schonmal nur Großbuchstaben eingeben!
Code:
public class LetterDocument extends PlainDocument {
private int maxLength_ = Integer.MAX_VALUE;
/**
* Erzeugt ein javax.swing.text.Document fuer das JTextField.
*
* @param maxLength
* maximale Zeichenanzahl
*/
public LetterDocument(final int maxLength) {
this.maxLength_ = maxLength;
}
/**
* Fügt den String nur dann ein, wenn die maximale Anzahl noch nicht überschritten ist.
*
* @param offs
* Offset (Position, an der der String eingefuegt werden soll)
* @param str
* einzufuegender String
* @param a
* Attribut-Set (werden hier nicht weiter beachtet)
* @throws BadLocationException
* wird "von oben" durchgereicht
* @see javax.swing.text.AttributeSet
*/
public void insertString(final int offs, final String str,
final AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
int actualLength = this.getLength();
if (actualLength + str.length() < this.maxLength_) {
if(str.matches("[A-Z]"))
super.insertString(offs, str, a);
} else {
// z.B. beep()
}
}
}
Wie bekomme ich es hin das auch das Leerzeichen geht und kleine Buchstaben?
Mit if(str.matches("[A-Z][a-z]+")) klappt es leider nicht...