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 :

Recherche JOptionPane.showInputDialog un peu spéciale


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 35
    Par défaut Recherche JOptionPane.showInputDialog un peu spéciale
    Bonjour/Bonsoir à vous,

    Je souhaiterai utiliser showInputDialog pour que l'utilisateur tape un texte, pas seulement une phrase (et donc que la touche entrée ne ferme pas la fenêtre).
    Je souhaiterai donc que le cadre du texte entré par l'utilisateur soit sur plusieurs lignes et pas une seule.

    Merci d'avance de vos réponses.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    C'est tout a fait réalisable. Une piste peut être : https://docs.oracle.com/javase/tutor...ts/dialog.html
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 35
    Par défaut
    Je pense donc que je vais devoir créer ma propre classe qui extends JDialog.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Il y a moyen de faire cela facilement avec JOptionPane, qui est malgré les apparences très malléable.
    En effet le message du JOptionPane n'est pas forcément une chaine de caractères : cela peut être un composant ou un tableau d'élément.

    Du coup on peut faire ceci :
    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
    	public static String showTextInputDialog(Component parentComponent,
    			Object message, String title, String initialValue)
    			throws HeadlessException {
    		// On crée le JTextArea de saisie du texte
    		JTextArea textArea = new JTextArea(initialValue);
     
    		// On crée le JScrollPane avec un PreferredSize
    		// qui déterminera sa taille dans la popup
    		JScrollPane scrollPane = new JScrollPane(textArea);
    		scrollPane.setPreferredSize(new Dimension(320, 120));
     
    		// On rajoute le ScrollPane avec le JTextArea dans le message :
    		message = new Object[] { message, scrollPane };
     
    		// Et on affiche la boite de dialogue
    		int result = JOptionPane.showConfirmDialog(parentComponent, message,
    				title, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
    		if (result == JOptionPane.OK_OPTION) {
    			return textArea.getText();
    		}
    		return null;
    	}

    Seul problème : le bouton "Ok" ferme la popup dans tous les cas sans contrainte.
    S'il y a besoin de rajouter une contrainte il faut remplacer l'appel de showConfirmDialog() par l'utilisation explicite d'un JOptionPane...


    a++

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 35
    Par défaut
    Oups, j'ai réussi en faisant ma classe personnelle donc je suis passé à autre chose.

    Mais merci de ta réponse, effectivement je ne pensais que pas JOptionPane avait autant de possibilités, c'est très intéressant à retenir, je vais comparer les deux résultats et choisir celui qui me convient !

    A+

Discussions similaires

  1. [RegEx] Utilisation un peu spéciale de preg_replace pour moteur de recherche
    Par xtremdisc dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2013, 18h09
  2. recherche un calendrier un peu spécial
    Par gastoncs dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 12/09/2009, 17h03
  3. envois de var $_GET un peu spécial
    Par frechy dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/11/2004, 11h00
  4. Réponses: 4
    Dernier message: 05/07/2004, 13h17
  5. ORDER BY un peu spécial
    Par gromez dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 29/04/2004, 11h17

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