djmysterio
Messages postés4Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 2 juin 2006
-
2 juin 2006 à 21:09
djmysterio
Messages postés4Date d'inscriptionlundi 6 mars 2006StatutMembreDerniè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]);
//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!
A voir également:
Cela fait 2 jours que je cherche sans trouver!!! HELP PLEASEEE!!
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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)
public class Test {
// Options pour les boutons
private static final String OPTIONS_LABEL[] = {
"<html>Précé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>ÉTAPE NUMÉRO 2:
"
+"Détermination de la taille des fils utilisés
"
+"Vous avez donc besoin d'un câble dont les fils ont une taille unique.
"
+"Veuillez choisir la taille de cable que vous possédez et
"
+"que vous désirez utiliser avec les produits Amphenol 97.
"
+"Ces valeurs sont 16, 12, 10, 8, 4 et 0.
"
+"Une fois votre sélection complétée, cliquez sur l'onglet "Suivant",
"
+"autrement, cliquez sur l'onglet "Précédent" afin de revenir aux étapes
"
+"anté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());
djmysterio
Messages postés4Date d'inscriptionlundi 6 mars 2006StatutMembreDerniè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é.... -________-'