TextField

Résolu
hhghost Messages postés 5 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 28 mai 2006 - 27 mai 2006 à 01:05
hhghost Messages postés 5 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 28 mai 2006 - 27 mai 2006 à 19:15
bonjour tous le monde,
voici mon petit programme :

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

public class FrameTest
{
    public static void main(String[] args)
    {
        JFrame frame=new ConxFrame();
        frame.setResizable(false);
        frame.show();          
    }
}

/////////////////////////////////////////////////////////////

class Pasnam extends JPanel
{
    Pasnam()
    {
       tf1=new TextField(8);
       tf2=new TextField(8);
       pano1=new Panel();
       pano2=new Panel();
       pano1.add(new Label("Name"));
       pano2.add(new Label("Password"));
       setLayout(new FlowLayout(FlowLayout.RIGHT,30,10));   
       pano1.add(tf1);
       pano2.add(tf2);
       add(pano1);
       add(pano2);
       tf2.setEchoChar('*');
     }
     private TextField tf1,tf2;
     private Panel pano1;
     private Panel pano2;
}

/////////////////////////////////////////////////////////////

class Fencx extends JPanel
{
 
  public Fencx()
  {
    centre = new Pasnam();
    sud=new Okan();
    centre.setBackground (Color.lightGray);
    sud.setBackground(Color.lightGray);
    setLayout(new BorderLayout(10,10));
   
    add(centre,BorderLayout.CENTER);
    add(sud,BorderLayout.SOUTH);
   
  }
    private Pasnam centre;
    private Okan sud;
   
}

/////////////////////////////////////////////////////////////

class Okan extends JPanel
{
    ActionListener féle=new ButActionListener();
    public Okan()
    {
    okok=new JButton("OK");
    non=new JButton("Annuler");
    setLayout(new FlowLayout(FlowLayout.CENTER,30,30));
   
    add(okok);
    add(non);
    okok.addActionListener(féle);
        non.addActionListener(féle);
    }  
    private JButton okok;
    private JButton non;
}

/////////////////////////////////////////////////////////////

class ConxFrame extends JFrame

    ConxFrame()
    {
        setTitle("Connexion");
        setSize(250,200);
        setLocation(400,250);
        Container contentPane=getContentPane();
         JPanel f=new Fencx();
        f.setBackground (Color.lightGray);
        contentPane.add(f);
    }
}

/////////////////////////////////////////////////////////////

class ButActionListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
      {
         if(e.getActionCommand().equals("Annuler"))
         {
             System.exit(0);
         }
         if(e.getActionCommand().equals("OK")){}
      }   
}

Il affiche une petite fenetre
avec deux buttons (OK et Annuler) ""okok,non""

Et deux TextField  (Name et Password) ""tf1,tf2""

Voila mon problème :

je n’arrive pas a limité le nombre de caractère a saisir au clavier dans  un  TextField

ce que je veut (par
exemple) limité le nombre de caractère du TextField Name (tf1) a 8 caractère si
je saisi un 9éme il ne dois pas s’afficher il doit être ignorer.

merci d'avance, toute aide est le bienvenu

7 réponses

hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
27 mai 2006 à 05:22
Limaiem heykel,
Bon si tu essaye de faire un ecouteur sur le champ que lorsque il atteint la taille que tu veu il s'arrete ( essaye getLenght ou getSize) sis tu utilise jbuildrer normalement tu trouverait un champ de taille d'un textfield
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
27 mai 2006 à 11:12
ouais tu peut faire comme ca et apres tu le couple a un consume de keyevent si jamais le caractere entre est un chiffre ou une lettre

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
27 mai 2006 à 13:57
/*
 * FrameTest.java
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
public class FrameTest {
    public static void main(String[] args) {
        JFrame frame=new ConxFrame();
        frame.setResizable(false);
//        frame.show(); //deprecated
        frame.setVisible(true);
    }
}
/////////////////////////////////////////////////////////////
class Pasnam extends JPanel {
    Pasnam() {
        //Ne pas mélanger AWT et Swing !
        tf1=new JTextField(8);
        tf2=new JPasswordField(8);
        tf1.setDocument(new LimitedText()); //ceci limite à 8 positions
        tf2.setDocument(new LimitedText());
        pano1=new JPanel();
        pano2=new JPanel();
        pano1.add(new JLabel("Name"));
        pano2.add(new JLabel("Password"));
        setLayout(new FlowLayout(FlowLayout.RIGHT,30,10));
        pano1.add(tf1);
        pano2.add(tf2);
        add(pano1);
        add(pano2);
        tf2.setEchoChar('*');
    }
    private JTextField tf1;
    private JPasswordField tf2;
    private JPanel pano1;
    private JPanel pano2;
}
/////////////////////////////////////////////////////////////
class Fencx extends JPanel {
    public Fencx() {
        centre = new Pasnam();
        sud=new Okan();
        centre.setBackground(Color.lightGray);
        sud.setBackground(Color.lightGray);
        setLayout(new BorderLayout(10,10));
        add(centre,BorderLayout.CENTER);
        add(sud,BorderLayout.SOUTH);
    }
    private Pasnam centre;
    private Okan sud;
}
/////////////////////////////////////////////////////////////
class Okan extends JPanel {
    ActionListener féle=new ButActionListener();
    public Okan() {
        okok=new JButton("OK");
        non=new JButton("Annuler");
        setLayout(new FlowLayout(FlowLayout.CENTER,30,5));
        add(okok);
        add(non);
        okok.addActionListener(féle);
        non.addActionListener(féle);
    }
    private JButton okok;
    private JButton non;
}
/////////////////////////////////////////////////////////////
class ConxFrame extends JFrame {
    ConxFrame() {
        setTitle("Connexion");
        setSize(250,200);
        setLocation(400,250);
        Container contentPane=getContentPane();
        JPanel f=new Fencx();
        f.setBackground(Color.lightGray);
        contentPane.add(f);
    }
}
/////////////////////////////////////////////////////////////
class ButActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals("Annuler")) {
            System.exit(0);
        }
        if(e.getActionCommand().equals("OK")){}
    }
}
class LimitedText extends DefaultStyledDocument {
    //pour limiter à 8 positions
    public void insertString(int offs, String str, AttributeSet a)
    throws BadLocationException {
        if ((getLength() + str.length()) <= 8)
            super.insertString(offs, str, a);
    }
}
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
27 mai 2006 à 14:19
J'ai oublié deux petits trucs (c'est domage qu'on ne puisse pas éditer ses messages):
...
class Pasnam extends JPanel {
    Pasnam() {
...
        setLayout(new FlowLayout(FlowLayout.RIGHT,30,25));
...
    }
...
}
...
class ConxFrame extends JFrame {
    ConxFrame() {
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
...
    }
}
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hhghost Messages postés 5 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 28 mai 2006
27 mai 2006 à 17:05
merci pour votres  aide c
exactement ce que je voulais








pourquoi ? " Ne
pas mélanger AWT et Swing ! "




et merci beaucoup
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
27 mai 2006 à 17:43
Il est impossible d'obtenir un rendu graphique correct dans une application qui mélange AWT et SWING. Des problèmes de superposition empêchent toute collaboration.

La raison: les composants AWT et SWING sont de types tout à fait contradictoires:

Un composant AWT lors de sa création est associé à une fenêtre distincte gérée par le système d'exploitation sous-jacent. Cette "manière" de faire est très lourde (perte de performance, et consommation excessive de mémoire). C'est pour cette raison que l'on qualifie les composants AWT par heavyweight (littéralement, poids lourds).

Par opposition, les composants Swing sont simplement dessinés à l'intérieur de leur conteneur comme s'il s'agissait d'une image, et aucun homologue du système sous jacent ne leur est affecté. C'est pourquoi ils sont qualifiés de lightweight (composants allégés).




 
3
hhghost Messages postés 5 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 28 mai 2006
27 mai 2006 à 19:15
ok merci pour info  [auteurdetail.aspx?ID=779037 uhrand]
3
Rejoignez-nous