IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[JTextField], [JFormattedTextField] Ecrire en majuscules ?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut [JTextField], [JFormattedTextField] Ecrire en majuscules ?
    Bonjour,

    Je cherche à ce que le texte rentré s'écrive directement en majuscule.
    ex : si l'on rentre : "bonjour 18"
    que s'affiche : "BONJOUR 18"

    Je ne comprends pas comment fonctionne JFormattedTextField, merci de m'éclairer.

    Merci

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    jFormettedTextField.setDocument(new PlainDocument() {
          public void insertString(int offset, String str, AttributeSet attr) throws
              BadLocationException {
            if (str != null) {
               super.insertString(offset, str.toUpperCase(), attr);
            }
          }
    });

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut
    Merci,
    Un autre problème cependant, le constructeur permettant de définir la taille de la boîte n'existe pas. Comment faire l'équivalent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     JTextField text = new JTextField(18);
    où 18 est le nombre de caracère.

  4. #4
    Membre chevronné Avatar de anitshka
    Inscrit en
    Mai 2004
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 624
    Par défaut
    si tu veux avoir nombre obligatoire de caractère, le jformatted textfiel avec un mask te suffira

    si au contraire tu cherches à obtenir un maximum de caractères, je te conseille un MyDocument dérivée de PlainDocument dans laquelle tu réalises les contrôles à la volée (voir la FAQ) ... que tu passes en paramètre d'un jtextfield

    a+

  5. #5
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut
    En fait ce n'est ni l'un ni l'autre, c'est juste qu'à l'affichage, il me fait une case toute petite et par conséquent pas très ésthétique.
    Il faudrait que je puisse définir cette taille.

    Merci

  6. #6
    Membre chevronné Avatar de anitshka
    Inscrit en
    Mai 2004
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 624
    Par défaut
    OK

    donc ca va être plus facile alors... je pense que tu as accès aux mêmes méthodes que pour le jtextfield

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setColumns(int columns)
    ou non ?

  7. #7
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut
    Merci, cela fonctionne !
    Il faut utiliser setColumns(), j'avais essayésetSize() mais cela ne fonctionne pas.

    Merci à vous deux pour m'avoir aidé

  8. #8
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut Problème avec une date
    Je continue de faire mon formulaire, et un autre problème apparait.
    Pourquoi le code suivant ne fonctionne pas ??? Je l'ai fait à partir du code qui se trouve sur un forum Java : http://forum.java.sun.com/thread.jspa?threadID=549723&messageID=2682469

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package com.logicinvest.fundviewer;
     
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import javax.swing.*;
    import javax.swing.text.*;
     
    public class JFormattedTextFieldDate extends JFormattedTextField {
    	MaskFormatter ssnFormat = null;
     
    	JButton okButton;
     
    	public JFormattedTextFieldDate() {
    		try {
    			ssnFormat = new MaskFormatter("##/##/####");
    		} catch (ParseException pe) {
    		}
     
    		new JFormattedTextField(ssnFormat);
    		setPreferredSize(new Dimension(80, 20));
    		System.out.println("format : " + ssnFormat);
     
    	}
     
    	public static void main(String args[]) {
    		JFormattedTextFieldDate date = new JFormattedTextFieldDate();
    		JFrame fen = new JFrame();
    		fen.setSize(300, 200);
    		JPanel pan = new JPanel();
    		pan.add(date);
    		fen.getContentPane().add(pan);
    		fen.setLocationRelativeTo(null);
    		fen.setVisible(true);
    	}
    }

    Pourriez Vous aussi me dire comment créer une boîte n'acceptant que les chiffres, mais d'une longueur variable.

    Merci

  9. #9
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut
    Ca marche avec ce code, je pense que c'était le try-catch qui génait ????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import javax.swing.*;
    import javax.swing.text.*;
     
    public class JFormattedTextFieldDate extends JFormattedTextField{
     
    	JButton okButton;
     
    	public JFormattedTextFieldDate() throws ParseException{
    		super(new MaskFormatter("##/##/####"));
    		setPreferredSize(new Dimension(80, 20));
     
    	}
     
    	public static void main(String args[]) throws ParseException{
    		JFormattedTextFieldDate date = new JFormattedTextFieldDate();
    		JFrame fen = new JFrame();
    		fen.setSize(300, 200);
    		JPanel pan = new JPanel();
    		pan.add(date);
    		fen.getContentPane().add(pan);
    		fen.setLocationRelativeTo(null);
    		fen.setVisible(true);
    	}
    Pour l'autre question, je continue à chercher.

Discussions similaires

  1. Ecrire en majuscules dans un JTextField
    Par khadi8 dans le forum Composants
    Réponses: 2
    Dernier message: 24/04/2012, 09h27
  2. Passer de JtextField à JFormattedTextField
    Par mikysett dans le forum Composants
    Réponses: 4
    Dernier message: 21/11/2007, 19h30
  3. ecrire en majuscule dans une zone de text
    Par sanfour_walhan dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/12/2006, 01h42
  4. Word sous delphi : ecrire en majuscule
    Par muquet dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2006, 15h27
  5. [JTextField] affiche le contenu en Majuscule.
    Par ch5oun dans le forum Composants
    Réponses: 4
    Dernier message: 22/04/2005, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo