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

AWT/Swing Java Discussion :

Empecher un evenement d'avoir lieu - jOptionPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut Empecher un evenement d'avoir lieu - jOptionPane
    Bonjour à tous,

    Je suis face à un problème vraiment idiot.

    J'ai crée un champs delta sur un formulaire qui doit contenir des valeurs spéciales. (que je vérifie à l'aide d'une regex)

    Lorsque l'utilisateur appuie sur entree, je veux valider le champs et l'enregistrer dans une variable.
    A contrario si le champs n'est pas valide , je veux afficher un message indiquant à l'utilisateur le bon format.

    Le problème est la, lorsque la valeur n'est pas bonne, l'utilisateur recoit en effet un joptionpane lui indiquant que la valeur renseignée n'est pas bonne. Mais si on appuie a nouveau sur entree pour effacer le joptionpane , ca correspond a envoyer à nouveau entree dans le champs qui n'a pas encore été modifié.

    Ce qui donne le joptionpane en boucle si je valide le bouton ok par la touche entrée.....

    Je souhaiterais donc faire en sorte que la touche entree sur le joptionpane ne passe pas l'evenement touche entree sur mon champs. Je sais pas si c'est tres clair et si c'est possible

    . n'hesitez pas pas me demander plus d'information si c'est pas clair.


    Le bout de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (evt.getKeyCode() == KeyEvent.VK_ENTER)
     
        {
        String delta=new String(ongletProduitstChampsDelta.getText());
        if (delta.matches("^[-+][123456789][0123456789]*")) print ("ok");
        else 
            {
            MessageErreur("Format non conforme","Le delta doit être de la forme +nombre ou -nombre. \n exemple : +1,-10 ...");
            ongletProduitstChampsDelta.setText("+10");
            }



    Merci par avance.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu as enregistré comment ton keylistener?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    En fait c'est netbeans qui le fait , mais c'est standard :

    Sur le champs delta :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ongletProduitstChampsDelta.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyReleased(java.awt.event.KeyEvent evt) {
            ongletProduitstChampsDeltaKeyReleased(evt);
        }
        public void keyTyped(java.awt.event.KeyEvent evt) {
            ongletProduitstChampsDeltaKeyTyped(evt);
        }
    });
    Apres sur le joption pane, il n'y rien :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jOptionPaneTropdeChampsVide = new javax.swing.JOptionPane();

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    normalement seul le composant ayant le focus recois les keyevent. Donc ca devrait être ton JOptionPane, pas ton onglet...

Discussions similaires

  1. [Débutant] Empecher Retour Evenement
    Par snay13 dans le forum C#
    Réponses: 5
    Dernier message: 10/11/2011, 17h11
  2. Réponses: 2
    Dernier message: 20/04/2010, 16h00
  3. JavaOne pourrait ne plus avoir lieu ?
    Par Baptiste Wicht dans le forum Événements
    Réponses: 5
    Dernier message: 12/10/2009, 17h40
  4. [vb.net][tab] comment empecher un evenement de se produire?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/07/2005, 15h18
  5. Instruction pour avoir 1 ligne au lieu de 2
    Par senacle dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/06/2005, 14h11

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