Mettre en majuscule la première lettre d’un JTextField – Java

Pour transformer la première lettre d’un JTextField en majuscules, vous pouvez facilement le faire en ajoutant un DocumentFilter au composant JTextField à l’aide de la méthode setDocumentFilter(). DocumentFilter nous permet de filtrer l’action pour les modifications du document telles que l’insertion, la modification et la suppression.


Pour convertir la première lettre d’un JTextField en majuscules, nous utilisons la méthode toUpperCase().
 
 

Exemple:
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;

public class MajTextField extends JFrame 
{
    public MajTextField()
    {
        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("Entrez un texte: "));
        getContentPane().add(texte);
        setSize(300, 70);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new MajTextField().setVisible(true));
    }

    class UppercaseJTextField extends DocumentFilter 
    {
        @Override
        public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attr) throws BadLocationException {
           if (fb.getDocument().getLength() == 0) {
               StringBuilder sb = new StringBuilder(text);
               sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
               text = sb.toString();
           }
           fb.insertString(offset, text, attr);
        }

        @Override
        public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
           if (fb.getDocument().getLength() == 0) {
               StringBuilder sb = new StringBuilder(text);
               sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
               text = sb.toString();
           }
           fb.replace(offset, length, text, attrs);
        }
    }
}

Sortie:

 

Une réflexion sur “Mettre en majuscule la première lettre d’un JTextField – Java

  • juin 12, 2021 à 2:38
    Permalien

    bonjour chers tous,
    j’aime bien suivre une formation en Java ici.
    j’ai un soucis comment faire pour inserrer la valeur dans le jtable et database

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.