Convert to Uppercase while Writing in JTextField
In this tutorial, we are going to see how to convert text to uppercase while writing in a JTextField in Java. To change the text of JTextField to uppercase, you can easily do it by adding a DocumentFilter to JTextField component using setDocumentFilter() method. DocumentFilter allows us to filter the action for document changes such as insert, edit and delete.
To convert a string to uppercase, we use toUpperCase() method. To convert it to lower case use toLowerCase() method.
Java Program to Convert to Uppercase while Writing in JTextField
import javax.swing.*; import javax.swing.text.*; import java.awt.*; public class UpperTextField extends JFrame { public UpperTextField() { getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT)); JTextField texte = new JTextField(); texte.setPreferredSize(new Dimension(180, 20)); DocumentFilter f = new UppercaseJTextField(); AbstractDocument doc = (AbstractDocument) texte.getDocument(); doc.setDocumentFilter(f); getContentPane().add(new JLabel("Enter text: ")); getContentPane().add(texte); setSize(300, 70); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new UpperTextField().setVisible(true)); } class UppercaseJTextField extends DocumentFilter { @Override public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attr) throws BadLocationException { fb.insertString(offset, text.toUpperCase(), attr); } @Override public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException { fb.replace(offset, length, text.toUpperCase(), attrs); } } }
Output: