Dokumentenfilter Upper

ACHTUNG:
Alle Code- Schnipsel sind zwar von mir erzeugt und getestet, aber dennoch übernehme ich keinerlei Garantie das diese auch funktionieren.
Außerdem können diese Methoden bei Unsachgemäßem gebrauch zu inkonsistenten Daten in der Datenbank führen.

BITTE IMMER IN EINEM TESTSYSTEM UND NIEMALS IM PRODUKTIVBETRIEB TESTEN

Hier die Anwendung auf ein JTextField()

Manchmal möchte man bei der Dateneingabe (Input) in ein Textfeld die Klein- oder Großschreibung erzwingen. Dies kann man am einfachsten mittels eines Dokumentenfilters in Java erledigen. Unten gelistet ist ein Dokumentenfilter, der die Großschreibung erzwingt.

Nach der Erzeugung eines JTextField() wird dem damit verknüpften "Dokument", dem Inhalt der Komponente, der Filter zugeordnet. Jetzt werden alle Eingaben durch den Filter in Großbuchstaben umgewandelt. Das glit auch für Copy & Past Aktionen. 

 

DocumentFilter filter = new RskUppercaseDocumentFilter();
AbstractDocument fullText = (AbstractDocument) TextField.getDocument();
fullText.setDocumentFilter(filter);

 

Das gleiche kann man natürlich auch für toLowercase() machen. Einfach eine neue Java- Klasse mit entsprechendem Namen erzeugen und die Methode toUppercase() in toLowercase() tauschen.

/* 
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates * and open the template in the editor.
*/

package de.rsk.utils;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;

/**
* de.rsk.utils.RskUppercaseDocumentFilter
*
* @author Rainer Schillack
*/

public class RskUppercaseDocumentFilter extends DocumentFilter {

@Override
public void insertString(DocumentFilter.FilterBypass fb, int offset, String value, AttributeSet attSet)
throws BadLocationException { fb.insertString(offset, value.toUpperCase(), attSet);
}

@Override
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String value, AttributeSet attSet)
throws BadLocationException { fb.replace(offset, length, value.toUpperCase(), attSet);
}

}