Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Um Fehler schon bei der Eingabe auszuschließen habe ich das PlainDocument erweitert mit folgender Klasse(abgewandelt aus der Klasse aus den Tutorials).
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...
if(str.matches("[ A-Za-z]*")) hinbekommen. Allerdings klappt .setText trotzdem nicht,egal ob per hand oder aus einer variablen die aus der Datenbank gefüllt wird. Woran kann das liegen?
habs hinbekommen....hab die länge zu klein eingestellt und bei manchen felder kommen Ä und ß vor...das mag der matcher auch nicht! kann man ÖÄÜ etc auch noch mit einbinden in den Regulären Ausdruck?
//EDIT : habs schon...war ja denkbar einfach ^^ Einfach öäüÖÄÜß vor das A-Z geschrieben und schon ging es!
noch eine letzte Sache: kann man ihm irgendwie sagen das er den ersten eingegeben Buchstaben in einen großen umwandelt? (also nicht nur einen Großen Buchstaben am Anfang erlaubt..das wär lästig bei der eingabe )
wenn ich das einfüge unterstreicht er das str und es kommt die fehlermeldung: "stamm.java": Der Variablen str ist etwas zugewiesen worden in Zeile 2408, Spalte 11