Différence entre JTextField et JFormattedTextField en Java

JTextField peut être utilisé pour du texte brut alors qu’un JFormattedTextField est une classe qui peut étendre JTextField et il peut être utilisé pour définir n’importe quel format pour le texte qu’il contient des numéros de téléphone, des adresses e-mails, des dates, etc.
 
 

JTextField
  • JTextField est l’un des composants les plus importants qui permettent à l’utilisateur de saisir une valeur de texte dans une seule de ligne.
  • JTextField peut générer une interface ActionListener lorsque nous essayons d’entrer une valeur dans le champ de texte et il peut générer une interface CaretListener chaque fois que le curseur change de position.
  • JTextField peut également générer les interfaces MouseListener et KeyListener.

 

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

public class JTextFieldExemple extends JFrame 
{
   public JTextFieldExemple() 
   {
      setTitle("Exemple JTextField");
      setLayout(new FlowLayout());
      JTextField text = new JTextField(20);
      add(text);
      setSize(350,80);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JTextFieldExemple();
   }
}

Sortie:


 
 

JFormattedTextField

La classe JFormattedTextField est une sous-classe de la classe JTextField.

  • JFormattedTextField est comme JTextField, sauf qu’il contrôle la validité des caractères et qu’il peut être associé à un Formatter qui spécifie les caractères que l’utilisateur peut entrer.
  • JFormattedTextField est une sous-classe de la classe Format pour créer un champ de texte formaté. Nous pouvons créer un Formatter, le personnaliser si nécessaire. Nous pouvons appeler le constructeur JFormattedTextField(Format format) qui prend un argument de type Format.

 

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

public class JFormattedTextFieldExemple extends JFrame 
{
   JFormattedTextField text;
   public JFormattedTextFieldExemple() 
   {
      setTitle("Exemple JTextField");
      setLayout(new FlowLayout());

      // Formater un numéro de téléphone
      try {
         MaskFormatter formatter = new MaskFormatter("##-##-##-##-##");
         formatter.setPlaceholderCharacter('#');
         text = new JFormattedTextField(formatter);
         text.setColumns(20);
      } catch(Exception e) {
         e.printStackTrace();
      }
	  
      add(text);
      setSize(350,80);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JFormattedTextFieldExemple();
   }
}

Sortie:


 
Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *