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

NetBeans Java Discussion :

Calcul dans un jTextfield


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut Calcul dans un jTextfield
    Bonjour à tous,

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try{
         int qte, pu;
     
         qte = Integer.parseInt(jTextQte.getText());           
         pu = Integer.parseInt(jTextPU.getText());            
         String mnt2 = Integer.toString(qte * pu);              
         jTextTOT.setText(mnt2);
         jTextCpte.requestFocus();                
     }catch(NumberFormatException e){
     
    }
    Aussi simple soit-il, quand j'exécute mon programme pour la première fois le résultat du calcul est affiché dans jTextTOT et jTextCpte recois le focus.
    Mais quand je tente faire une second calcul le curseur se fige dans jTextPU et le resultat du calcul n'est pas affiché dans jTextTOT et jTextCpte recois ne recois pas le focus.

    Je n'arrive pas à comprendre. Merci de m'aider.

  2. #2
    Membre très actif Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Par défaut
    Bonjour,

    il faut ajouter un ActionListener au JTextField pour qu'il mette à jour le résultat

  3. #3
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Bonjour,

    il faut ajouter un ActionListener au JTextField pour qu'il mette à jour le résultat
    Bonsoir,

    J'apprend Java, donc je ne sais pas comment le faire. Pouvez-vous m'aider?

  4. #4
    Membre très actif Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Par défaut
    Code java : 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
     
    public class Exemple {
     
        public static void main(String[] args) {
            JFrame jFrame = new JFrame();
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel panel = new JPanel();
            panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
            JTextField field1 = new JTextField();
            JTextField field2 = new JTextField();
            JLabel result = new JLabel();
            ActionListener actionListener = event -> {
                // Ton code
                try{
                    int qte, pu;
     
                    qte = Integer.parseInt(field1.getText());
                    pu = Integer.parseInt(field2.getText());
                    String mnt2 = Integer.toString(qte * pu);
                    result.setText(mnt2);
                }catch(NumberFormatException e){
            }};
            field1.addActionListener(actionListener);
            field2.addActionListener(actionListener);
            panel.add(field1);
            panel.add(field2);
            panel.add(result);
            jFrame.add(panel);
            // IL faut resizer la fenetre
            jFrame.setVisible(true);
     
        }
     
    }

  5. #5
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Citation Envoyé par supergeoffrey Voir le message
    Code java : 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
     
    public class Exemple {
     
        public static void main(String[] args) {
            JFrame jFrame = new JFrame();
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel panel = new JPanel();
            panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
            JTextField field1 = new JTextField();
            JTextField field2 = new JTextField();
            JLabel result = new JLabel();
            ActionListener actionListener = event -> {
                // Ton code
                try{
                    int qte, pu;
     
                    qte = Integer.parseInt(field1.getText());
                    pu = Integer.parseInt(field2.getText());
                    String mnt2 = Integer.toString(qte * pu);
                    result.setText(mnt2);
                }catch(NumberFormatException e){
            }};
            field1.addActionListener(actionListener);
            field2.addActionListener(actionListener);
            panel.add(field1);
            panel.add(field2);
            panel.add(result);
            jFrame.add(panel);
            // IL faut resizer la fenetre
            jFrame.setVisible(true);
     
        }
     
    }
    Merci pour cet exemple, mais j'ai toujours le même problème. Quand je tape sur le touche entré le le calcul n'est pas fait et le curseur reste figé sur dans jTextPU.
    Voici mon code :

    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
    private void jTextPUActionPerformed(java.awt.event.ActionEvent evt) {                                        
            // TODO add your handling code here:                           
            demande_de_materiel dm = new demande_de_materiel();
            dm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel panel = new JPanel();
            panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
            JTextField jTextQte = new JTextField();
            JTextField jTextPU = new JTextField();
            JLabel result = new JLabel();
            ActionListener actionListener = event -> {
                try{  
                    int qte, pu;                
                    qte = Integer.parseInt(jTextQte.getText());  
                    pu = Integer.parseInt(jTextPU.getText());                                     
                    String mnt2 = Integer.toString(qte * pu);  
                    result.setText(mnt2);
                    jTextTOT.setText(mnt2);
                    jTextCpte.requestFocus(); 
                }catch(NumberFormatException e){
     
                    }        
            };
            jTextQte.addActionListener(actionListener);       
            jTextPU.addActionListener(actionListener); 
            panel.add(jTextQte);
            panel.add(jTextPU);
            panel.add(result);
            dm.add(panel);
            // IL faut resizer la fenetre
            dm.setVisible(true);
        }

  6. #6
    Membre chevronné
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 347
    Par défaut
    Bonjour,

    Dans votre exmple de code il y à deux "JTextField" quis ont utilisés mais on ne sait pas comment ils sont déclarés.

    Citation Envoyé par sondo Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jTextTOT.setText(mnt2);
                    jTextCpte.requestFocus()
    Etes vous sur que jTextTOT ne soit pas le même que l'un des deux "JtextField" qui declenchent le calcul ? Si c'est le cas vous avez probablement une boucle infinie qui donne cette impression de freeze.
    Ajouter un point d'arrêt ou simple System.out.println("calcul"); dans votre action listener vous montrera tout de suite si vous avez une boucle infinie.

Discussions similaires

  1. Résultat d'un calcul dans JTextField
    Par patnership2013 dans le forum NetBeans
    Réponses: 12
    Dernier message: 09/12/2013, 15h10
  2. Calcul dans un triggers : problème du +
    Par eXiaNazaire dans le forum Oracle
    Réponses: 3
    Dernier message: 07/01/2005, 10h14
  3. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 14h57
  4. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09
  5. calcul dans une requête
    Par blaz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/12/2003, 10h31

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