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 :

Apparition d'une fenêtre lors d'un clic


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut Apparition d'une fenêtre lors d'un clic
    Bonsoir,

    j'ai une fenetre contenant un bouton.
    Lorsque je clique sur le bouton, si le bouton est vide (il n'y a rien d'écrit dessus), une fenetre s'ouvre : il y a un champ de texte qui permet d'écrire ce qu'on veut ou un bouton pour annuler.
    Si le bouton n'est pas vide, une fenetre s'ouvre et propose 3(boutons) choix suppression, annulation, modification du texte

    Il faut que ce qui a été tapé ou supprimer soit garder en mémoire.
    Par exemple, si mon bouton contient bonsoir et que je ferme la fenetre, lors de la relance du programme, le bouton doit contenir bonsoir.

    Est-ce que vous pourriez m'indiquer comment faire cela.

    Merci

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Pour conserver le texte, vaut mieux créer un fichier texte : voir java.io.File et java.io.FileWriter. Ensuite niveau GUI, c'est pas bien compliqué : tu charges le texte, tu fais un setText() sur ton bouton. Après, je vais pas tout te faire donc réfléchis 5 secondes et tu verras que tu es capable de le faire...

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Janitrix
    Pour conserver le texte, vaut mieux créer un fichier texte : voir java.io.File et java.io.FileWriter.
    Dans le cas d'un seul bouton, ça marcherait mais pas dans le cas de plusieurs.
    Comment faire dans ce cas .
    Ensuite niveau GUI, c'est pas bien compliqué : tu charges le texte, tu fais un setText() sur ton bouton. Après, je vais pas tout te faire donc réfléchis 5 secondes et tu verras que tu es capable de le faire...
    Comment savoir qu'un bouton est vide ou non ?

  4. #4
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par Premium
    Dans le cas d'un seul bouton, ça marcherait mais pas dans le cas de plusieurs.
    Comment faire dans ce cas .
    Pour conserver le texte de plusieurs boutons, tu peux utiliser un fichier properties et la classe Properties. Tu peux te renseigner et .

    Citation Envoyé par Premium
    Comment savoir qu'un bouton est vide ou non ?
    En récupérant le texte du bouton pour le comparer à la chaîne vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ( monBouton.getText().length == 0 ) {
       // Bouton vide
    } else {
       // Bouton pas vide
    }

  5. #5
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Je crois que la classe JOptionPane est faite pour toi ! Autant pour saisir le texte (JOptionPane.showInputDialog) que pour les 3 boutons.

    Tu devrais assez faciilement trouver des exemples d'utilisation sur le web.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par xavlours
    Je crois que la classe JOptionPane est faite pour toi ! Autant pour saisir le texte (JOptionPane.showInputDialog) que pour les 3 boutons.

    Tu devrais assez faciilement trouver des exemples d'utilisation sur le web.
    Ca correspond effectivement à ce que je cherche mais pour la conservation du texte de chaque bouton, zone de texte, il me semble que ça ne le fait pas.
    Je dois utiliser utiliser la classe proposée par schniouf mais la aussi ça pose problème car la classe Properties utilise des Map avec comme couple des String alors que la clé doit pouvoir être un JButton, JTextField, etc ...

  7. #7
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Dans ce cas, tu as 2 choix :
    1. Tu gardes les properties et tu nommes tes clés en fonction du composant associé. Exemple : bouton1=Texte du bouton 1
    2. Tu sauvegardes tes objets (boutons fields, etc) grâce à la serialisation, et dans ce cas plus besoin de properties.

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Eh bien chaque bouton utilise une clé en String différente. Le nommage habituel des properties (dans les LnF) est du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    props.put("monBouton1.text", monBouton1.getText());
    props.put("monBouton2.text", monBouton2.getText());
    props.put("monTextField1.text", monTextField1.getText());
    Tu peux même stocker des tableaux, dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    props.put("mesBoutons.text", new String[]{monBouton1.getText(), monBouton2.getText()});
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Merci xavlours et schniouf pour les réponses.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/11/2010, 17h16
  2. Demander une confirmation lors d'un clic
    Par kevinf dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/09/2007, 19h35
  3. Réponses: 2
    Dernier message: 31/08/2007, 16h52
  4. Réponses: 4
    Dernier message: 11/07/2006, 10h41
  5. [VB6] Effacer une listbox lors d'un clic.
    Par Chocapic dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 02/06/2006, 11h55

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