Memoriser dernier champs modifier !!

lolo80000 Messages postés 22 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 16 août 2012 - 11 févr. 2007 à 15:24
tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 - 12 févr. 2007 à 21:53
Bonjour,

Voila, je dois realiser une petite application afin de convertir des francs en euros et inversement. J'ai 2 JtextField, un pour les francs et un autre pour les euros, l'utilisateur a le choix entre convertir soit dans un sens soit dans l'autre c'est pour cette raison que je dois memoriser le dernier champ qui a été modifié. Comment faire ??

Deuxième question dans les 2 Jtextfield où il doit y avoir que des nombres comment tester si l'utilisateur saisi une lettre ??

Merci
Laurent

6 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
11 févr. 2007 à 15:35
tu peux ajouter un ecouteur d'evenement ... il me semble que tu peux mettre un stateChanged ou alors un moussePressed par exemple

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
11 févr. 2007 à 15:47
Salut:



Pourquoi ne pas mettre un groupe de deux boutons radio:



1. Convesion Euro-Franc



2. Conversion Franc-Euro



Chaque fois qu'on choisit un type de conversion on désactive le champ concerné par le résultat qui sera par la suite  accessible en lecture seule.




ça serait plus clair dans l'utilisation.




__________________________________________________________
A.B. :  Je vais apprendre et apprendre et apprendre ....
0
lolo80000 Messages postés 22 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 16 août 2012
11 févr. 2007 à 15:50
Justement mon projet precise de ne pas utiliser cette methode.

Merci
Laurent
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
11 févr. 2007 à 17:11
Salut,

si tu veux tester la saisie en temps reel sur un champs texte il te faut redef le document voici un petit exemple te montrant comment faire (ici je ne gère pas les float et double :

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class Test extends JFrame{

    public Test(){
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300, 300);
        setLocationRelativeTo(null);
       
        JPanel p = new JPanel();
       
        JTextField txt = new JTextField();
        txt.setDocument(new DigitCaseDocument());
        txt.setPreferredSize(new Dimension(100, 50));
       
        p.add(txt);
       
        setContentPane(p);
    }
   
    public static void main(String[] args) {
        new Test().setVisible(true);
    }
   
    public class DigitCaseDocument extends PlainDocument {

        private static final long    serialVersionUID    = 8255963382054097004L;
        private int                    maxChar                = 5;

        public DigitCaseDocument() {
            super();
        }
       
        public DigitCaseDocument(int maxChar) {
            this();
            setMaxChar(maxChar);
        }

        public final void setMaxChar(int maxChar) {
            this.maxChar = maxChar;
        }

        public final void insertString(int offs, String str, AttributeSet a)
                throws BadLocationException {

            if (str == null)
                return;
            if ((getLength() + str.length()) > maxChar) {
                Toolkit.getDefaultToolkit().beep();
                return;
            }
            String digit = "";
            for (char c : str.toCharArray())
                if (Character.isDigit(c)) digit += c;
                else {
                    Toolkit.getDefaultToolkit().beep();
                    break;
                }
            super.insertString(offs, digit, a);
        }
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0

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

Posez votre question
lolo80000 Messages postés 22 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 16 août 2012
12 févr. 2007 à 15:30
re,

j'aurai voulu juste ecouter la JTextField avec l'aide d'evenement mais je ne sais pas du tout comment faire .....Pouvez-vous m'aider ??

Merci
0
tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 3
12 févr. 2007 à 21:53
Salut ,
Tu peux faire ca :
(ce qui t' interesse est en rouge;


public class Test extends JFrame implements ActionListener {

KeyListener kl = new KeyListener() {

public void keyTyped(java.awt.event.KeyEvent e) {
if(e.getSource()==field){ // ton code si ca vient de ce JTextField
}
if(e.getSource()==field){ //pareil si ca vient de l autre
}

}
public void keyPressed(KeyEvent e) {
}

public void keyReleased(KeyEvent e) {
}
JFrame frame = new JFrame("test");

JTextField field = new JTextField();
JTextField field2 = new JTextFiedl();

public static void main(String [] args){// ca c ' est vraiment pour l exemple :p
frame.setSize(800,600);

frame.add(panel);

JPanel panel = new JPanel();

panel.add(field2);

panel.add(field)

field.addKeyListener(listener);
field2.addKeyListener(listener);
}
public void actionPerformed(ActionEvent e) {
}
}

}
0
Rejoignez-nous