Bonjour,
Est-il possible d'avoir un JOptionPane.showInputDialog() permettant de saisir un retour à la ligne dans le texte saisi ?
Bonjour,
Est-il possible d'avoir un JOptionPane.showInputDialog() permettant de saisir un retour à la ligne dans le texte saisi ?
A priori en regardant vite fait la javadoc je n'en ais pas l'impression.
Mais bon développer un composant de ce stype à base de JDialog ne doit pas être bien dûr
Bonjour,
Comme ça :
Par contre 3 remarques :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 String monMessage = "Entrez une valeur"; JTextArea maSaisie = new JTextArea(); JScrollPane pane = new JScrollPane(maSaisie); Object[] elements = new Object[2]; elements[0] = monMessage; elements[1] = pane; JOptionPane.showMessageDialog(null, elements, "Saisie demandée", JOptionPane.QUESTION_MESSAGE) ; String reponse = maSaisie.getText();
1) Comme tu le vois j'utilise un showMessageDialog, car pour showInputDialog, il y a déjà un composant de saisie que tu ne peux pas changer (du moins à ma connaissance).
2) Tu ne peux voir qu'une ligne à la fois, c'est pour ça que j'utilise un JScrollPane pour pouvoir scroller.
3) Y'a surement mieux à faire, en utilisant la classe JDialog.
Salut,
Petit rappel (c'est dans la javadoc de JOptionPane) :[/list:u:0d50513c8b]
- Le paramètre message des méthodes showXXX() de JOptionPane est de type Object et non pas String, et il est interprété de la manière suivante :
[list:0d50513c8b]- Si c'est un tableau, chacun de ses éléments sont interprétés récursivement.
- Si un un Component, il est affiché tels quel dans la JDialog.
- Si c'est une Icon, elle est affiché directement dans un JLabel.
- Et les autres types sont converties en String via toString() pour être affichés dans un JLabel...
Il est donc possible de faire tout ce qu'on veut sans pour autant repartir de JDialog (et donc se taper beaucoups de contrôle à la main).
Dans ton cas la méthode showConfirmDialog() est plus approprié (showInputDialog() affichera toujour le textField en plus). Ce qui peut donner :
Si le rendu ne te plais pas tu peux directement lui passer un JPanel correctement rempli...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 JTextArea textArea = new JTextArea("Texte par défaut"); JScrollPane scrollArea = new JScrollPane(textArea); scrollArea.setPreferredSize(new Dimension(200,80)); JOptionPane.showConfirmDialog( frame, // Ta JFrame new Object[] {"Ta question ici !", scrollArea}, "Titre", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
a++
[edit] Grillé, mais mon textarea est bien multiligne (merci setPreferredSize())![]()
@ adiGuba
Ah c'est donc sur les preferred size qu'il fallait jouer pour changer la taille. J'ai essayer le setSize mais il n'avait aucun effet, c'est pour ça que j'ai ajouté un JScrollPane...
@ SheikYerbouti
Tant qu'à choisir, prend la solution d'adiGuba, le rendu est meilleur.
Non n'exagère pas! Le maître c'est adiGuba, moi je ne suis encore qu'un jeune padawan!Envoyé par SheikYerbouti
![]()
Houlà bon je![]()
N'exagère pas non plus... moi aussi je suis loin d'être un maitreEnvoyé par Descent
![]()
Quel que soit notre niveau, quelqu'un a toujours un niveau supérieur 8)
Partager