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

avec Java Discussion :

Récupérer valeur numérique


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut Récupérer valeur numérique
    Bonjour, je développe une application de calculs mathématiques.
    Pour la fonction Delta (b²-4ac), je demande via un JOptionPane à l'utilisateur d'entrer le polynôme, or, il va entrer quelque chose de ce style (ex: 4x²-8x+3), et je souaite seulement récuperer les valeurs ( 4, 8 et 3 ) pour appliquer par la suite le formule connue.
    Je ne sais comment aborder le sujet, j'ai déja réalisé une méthode qui récupère le polynôme complet dans un JTextField.

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Par défaut
    Le plus simple est de chercher l'index de x dans ce string et prendre tout ce qui est avant cette index.
    Sinon si ton équation est de la forme ax²+bx+c où x est toujours le nom de la variable tu peux utiliser les expressions régulières (.*?)x²(.*?)x(.*?) et tu récupère avec a=matcher.group(1), b=matcher.group(2), c=matcher.group(3).

  3. #3
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Bonjour,

    si tu laisses un JTextField pour saisir le polynome en entier, il sera alors possible de saisir (x + 2)x - 5 qui n'est pas sous la forme classique mais qui est aussi un polynome...
    Là, tu vas commencer à galérer si tu dois tout gérer.

    Je te conseille plutôt d'utiliser 3 JTextField que tu sépares avec des JLabel pour faire un "polynome à trou". Comme ça, l'utilisateur n'aura qu'à saisir a, b et c et cela sera plus facile pour toi à récupérer.

  4. #4
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Bonjour, merci hibour, mais Deaf à je pense la meilleur solution, je n'y avais pas pensé, mais il est vrai que pour la gestion du calcul postérieur cela sera plus simple d'avoir trois champs indépendant, en fait je place les 3 JLabel avec pour info x² puis x puis la constante, tres bien, merci beaucoups, je post le code si j'y parvient aujourd'hui !


    Edit: Cependant, je ne vois pas comment placer autant de composant dans un seul JOptionPane, j'ai été voir des exemples sur java2s, mais il n'y pas le cas ou un JOptionPane contiendrais plusieurs Label ou JTF ..

  5. #5
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Je dirais que tu vas devoir te faire ta propre fenêtre pour pouvoir y arriver.

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    une autre solution qui permet de ne pas figer la saisie utilisateur est l'utilisation d'une grammaire !

    Je pense tout naturellement à ANTLR.

    Il y a même un exemple qui sera parlant : Expression evaluator

    Et une version plus complète qui introduit des fonctions
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Merci pour vos réponses, mais j'opter pour une Frame ( je préfere faire ce que je connais ) avec les divers composants requis, je me retrouve donc avec deux boutons ( ok, annuler) et 3 JTF + 3 label.
    J'ai essayer de les placer via un GridBagLayout, et là, petit problème de placement
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    // METHODE DE LA FENETRE DELTA CALCUL
    		private void fenetre()    {
     
    			JButton confirm = new JButton("OK");
    			JButton cancel = new JButton("Annuler");
    			JTextField field2 = new JTextField(5);
    			JTextField field3 = new JTextField(5);
    			JTextField field4 = new JTextField(5);
    			JLabel labelDelta = new JLabel("x²");
    			JLabel labelDelta2 = new JLabel("x");
    			JLabel labelDelta3 = new JLabel("constante");
     
     
     
    			JFrame deltaFrame = new JFrame();
    			JPanel panelDelta = new JPanel();
    			deltaFrame.setLayout( new GridBagLayout());
    			GridBagConstraints d = new GridBagConstraints();
    			deltaFrame.add(panelDelta);
    			d.insets =  new Insets(1, 1 ,1 ,1);
     
     
     
        		deltaFrame.setSize(250, 200);
        		deltaFrame.setLocationRelativeTo(null);
        		deltaFrame.setTitle("Delta");
        		deltaFrame.setBackground(Color.white);
        		deltaFrame.setVisible(true);
     
     
     
        		// PLACEMENT DES COMPOSANT FENETRE DELTA
     
        		 d.gridx = 3;
        	     d.gridy = 2;
        	     d.gridwidth = 1;
        	     d.gridheight = 1;
        	     	deltaFrame.add(confirm, d);
     
        		 d.gridx = 4;
        	     d.gridy = 2;
        	     d.gridwidth = 1;
        	     d.gridheight = 1;
        	     	deltaFrame.add(cancel, d);
     
     
     
        		 d.gridx = 1;
        	     d.gridy = 0;
        	     d.gridwidth = 2;
        	     d.gridheight = 1;
        	     d.fill = GridBagConstraints.HORIZONTAL;
        	     field2.setEditable(true);
     
        	     	deltaFrame.add(field2, d);
     
     
        	     d.gridx = 2;
           	     d.gridy = 0;
           	     d.gridwidth = 1;
           	     d.gridheight = 1;	
           	     	deltaFrame.add(labelDelta, d);
     
     
     
        	     d.gridx = 3;
        	     d.gridy = 0;
        	     d.gridwidth = 2;
        	     d.gridheight = 1;
        	     d.fill = GridBagConstraints.HORIZONTAL;
        	     deltaFrame.add(field3, d);
     
        	     d.gridx = 4;
        	     d.gridy = 0;
        	     d.gridwidth = 1;
        	     d.gridheight = 1;
        	     	deltaFrame.add(labelDelta2, d);
     
        	     d.gridx = 5;
        	     d.gridy = 0;
        	     d.gridwidth = 2;
        	     d.gridheight = 1;
        	     d.fill = GridBagConstraints.HORIZONTAL;
        	     	deltaFrame.add(field4, d);
     
        	     d.gridx = 6;
        	     d.gridy = 0;
        	     d.gridwidth = 1;
        	     d.gridheight = 1;
        	     	deltaFrame.add(labelDelta3, d);
     
     
     
     
    		}
     
    	}
    Vous devez voir que j'ai voulu placer les 2 boutons (ok, annuler) sur la ligne 2 et les 6 composants alignés sur la 1ère ligne.
    Pièce jointe 65775

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Callback - Récupérer une valeur numérique
    Par Blue-Berenice dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 07/06/2012, 10h44
  2. Récupérer valeur non numérique d'un spreadsheet
    Par timeis dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 15/10/2010, 09h38
  3. récupérer une valeur numérique dans une chaine
    Par EFFLYINGJOKER dans le forum Développement
    Réponses: 2
    Dernier message: 30/03/2010, 16h26
  4. Récupérer les valeurs numériques d'une cellule
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/02/2010, 15h38
  5. Comment récupérer la valeur numérique de l'opacité
    Par raton_laveur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/11/2008, 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