Cela fait 2 jours que je cherche sans trouver!!! HELP PLEASEEE!!

Résolu
djmysterio Messages postés 4 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 2 juin 2006 - 2 juin 2006 à 21:09
djmysterio Messages postés 4 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 2 juin 2006 - 2 juin 2006 à 22:21
Bonjour. Je vous explique, je développe actuellement une petite application pour un ami. Le but de l'application n'est pas vraiment important, ce qui est important de savoir, c'est que je dois créer un espèce de "wizard" dans lequel l'utilisateur sera porté à répondre à différentes questions. Puis, je suis arrivé un jour à la contrainte de créer un JPane contenant une liste déroulante ET des boutons personnalisés.

Mon problème à la base était que j'avais soit le choix:
A) De demander une entrée texte et de spécifier des noms de boutons personnalités
B) D'afficher une liste déroulante personnalisée, mais de me retrouver avec les boutons OK et Cancel.

J'ai fait un peu de recherche sur internet, et j'ai trouvé sur un forum un mec qui avait sensiblement le même problème que moi. Voici son code adapté pour mon programme:

public static void selectionTailleInsert()
{
 
 JFrame frame = new JFrame();
 
 String texte =
 "ÉTAPE NUMÉRO 2:\n"
 +"Détermination de la taille des fils utilisés\n\n\n"
 +"Vous avez donc besoin d'un câble dont les fils ont une taille unique.\n"
 +"Veuillez choisir la taille de cable que vous possédez et\n"
 +"que vous désirez utiliser avec les produits Amphenol 97.\n\n"
 +"Ces valeurs sont 16, 12, 10, 8, 4 et 0.\n\n\n"
 +"Une fois votre sélection complétée, cliquez sur l'onglet "Suivant",\n"
 +"autrement, cliquez sur l'onglet "Précédent" afin de revenir aux étapes\n"
 +"antérieures.\n\n\n";
 
 String titre =
 "ÉTAPE NUMÉRO 2";
 
 int typeMessage = JOptionPane.PLAIN_MESSAGE;
 
 //Options de la liste déroulante
 Object[] choix = {"16","12","10","8","4","0"};


 //Options pour les boutons
 Object[] options = {"Précédent","Suivant"};
 
 JOptionPane pane = new JOptionPane(texte, typeMessage, 2, null, options, options[1]);
 
 pane.setWantsInput(true);
    pane.setSelectionValues(choix);
   
    pane.setComponentOrientation(frame.getComponentOrientation());


    JDialog dialog = pane.createDialog(frame, titre);
     
    dialog.setVisible(true);
    dialog.dispose();
   
    //Obtenir la valeur texte du bouton
    Object selectedValue = pane.getValue();
    System.out.println(selectedValue);
   
   
    //Petit test
    if(selectedValue.equals("Suivant"))
    {
     System.out.println("JOW");
    }
 
}

Bon bon...par essais et erreur et d'autres recherches, j'ai réussi à trouver comment obtenir la valeur chaîne de mes 2 boutons (à savoir si j'appuie sur Précédent et suivant) et j'ai trouvé un moyen de faire la validation avec un IF.

Ma question est, et cala fait 2 jours que je cherche:

COMMENT OBTENIR LA VALEUR CHAINE CONTENUE DANS MA LISTE DÉROULANTE??? 

Je suis complètement perdu loll Je veut simplement effectuer une petite comparaison du genre:

if  (<code qui me permet de savoir la valeur de ma liste> = 16)
{
      blablablabla;
}

Merci à tous d'avance, vous me sauveriez réellement la vie!

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 juin 2006 à 21:53
Salut,

Bon j'ai pris la libertée de modifier ton code affin de te montrer que tu peux mettre du html pour preserver la portabilitée de ton code point de vue des accents(différence d'encodage des caratères)

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Test {
    //    Options pour les boutons
    private static final String OPTIONS_LABEL[] = {
        "<html>Pr&eacute;c&eacute;dent</html>",
        "Suivant"
    };
    //    Options de la liste deroulante
    private static final String CHOIX[] = {
        "16","12","10","8","4","0"
    };
   
    //    Texte de la fenetre
    private static final String TEXTE =
                "<html>&Eacute;TAPE NUM&Eacute;RO 2:
"
                 +"D&eacute;termination de la taille des fils utilis&eacute;s

"
                 +"Vous avez donc besoin d'un c&acirc;ble dont les fils ont une taille unique.
"
                 +"Veuillez choisir la taille de cable que vous poss&eacute;dez et
"
                 +"que vous d&eacute;sirez utiliser avec les produits Amphenol 97.

"
                 +"Ces valeurs sont 16, 12, 10, 8, 4 et 0.

"
                 +"Une fois votre s&eacute;lection compl&eacute;t&eacute;e, cliquez sur l'onglet "Suivant",
"
                 +"autrement, cliquez sur l'onglet "Pr&eacute;c&eacute;dent" afin de revenir aux &eacute;tapes
"
                 +"ant&eacute;rieures.

<html>";
   
    //    Options de la liste deroulante
    private static final String TITRE = "ETAPE NUMERO 2";
   
   
    public static void main(String [] args){
        JFrame frame = new JFrame();
        JOptionPane pane = new JOptionPane(TEXTE, JOptionPane.PLAIN_MESSAGE, 2, null, OPTIONS_LABEL, OPTIONS_LABEL[1]);
         
        pane.setWantsInput(true);
        pane.setSelectionValues(CHOIX);
        pane.setComponentOrientation(frame.getComponentOrientation());
        JDialog dialog = pane.createDialog(frame, TITRE);
        dialog.setVisible(true);
        dialog.dispose();
        //Obtenir la valeur texte du bouton
        Object selectedValue = pane.getValue();      
      
        //Petit test
        if(selectedValue.equals(OPTIONS_LABEL[1])){
            /**
             * Returns the value the user has input, if
wantsInput

             * is true.
             *
             * @return the
Object
the user specified,
             *        if it was one of the objects, or a
             *            
String
if it was a value typed into a
             *             field
             * @see #setSelectionValues
             * @see #setWantsInput
             * @see #setInputValue
             */
            System.out.println(pane.getInputValue());
           
        }
    }
}

Voilou voilou

WORA
3
djmysterio Messages postés 4 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 2 juin 2006
2 juin 2006 à 22:21
OH MY GOD! Euh...premièrement merci infiniment mon ami, je ne croyais pas recevoir une réponse aussi rapide et par dessus tout, si cohérente :-)

Je n'arive pas à croire que cela était aussi simple, je veux dire, j'ai probablement essayé toute les déviations gramaticalement possible de getInputValue (pluriel, allemand, majuscules, minuscules, espace, parenthèse, couleur, situation géoppolitique de l'afrique du sud) et c'était probablement la seule que je n'avais pas testé.... -________-'

Merci encore mille fois!
3
Rejoignez-nous