This Java Swing tip illustrates a method of implementing document cleaner that maps lowercase letters to uppercase. The application behaves as a simple DocumentFilter.

 import javax.swing.*;
import javax.swing.text.*;

public class UpcaseFilter extends DocumentFilter {

  public void insertString(DocumentFilter.FilterBypass fb, int offset,
                String text, AttributeSet attr) throws BadLocationException
    fb.insertString(offset, text.toUpperCase(), attr);

  //no need to override remove(): inherited version allows all removals

  public void replace(DocumentFilter.FilterBypass fb, int offset, int length,
                  String text, AttributeSet attr) throws BadLocationException
    fb.replace(offset, length, text.toUpperCase(), attr);

  public static void main(String[] args) {
    DocumentFilter dfilter = new UpcaseFilter();

    JTextArea jta = new JTextArea();
    JTextField jtf = new JTextField();

    JFrame frame = new JFrame("UpcaseFilter");
    frame.getContentPane().add(jta, java.awt.BorderLayout.CENTER);
    frame.getContentPane().add(jtf, java.awt.BorderLayout.SOUTH);
    frame.setSize(200, 120);