Choix ComboBox et affichage RadioButton

walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011 - 1 juin 2010 à 14:47
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011 - 2 juin 2010 à 17:25
Bonjour, je voudrais lors d'un choix dans un ComboBox qu'un radioButton s'affiche et qu'un autre disparaisse.
Comment faut-il faire pour que le choix soit prise en compte sans appuyer sur un bouton, parce que la je fais mon choix dans ma ComboBox mais mes Radiobutton ne s'affiche et ne disparaisse pas.
J'ai fait un switch case pour les choix de ma ComboBox et des setVisisble pour mes radiobutton

POuvez vous m'aideR?

Merci

22 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 15:07
Salut,

Toujours la même remarque : montre nous ton code...
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 17:17
Vous etes de partout. lol ^^
J'ai ecrit une methode:


et dans ma comboBox j'ai mis :

private JComboBox getJComboBox() {
if (jComboBox == null) {
String[]appareil = {"Choix de l'appareil","AS350 B1 F-HELY ","AS350 B2 F-GNLP","AS350 B2 F-GTRD 5PAX","AS350 B2 F-GTRD 6PAX","AS350 B1 F-HMER 5PAX","AS350 B1 F-HMER 6PAX","AS350B2 F-HHSA 5PAX","AS350B2 F-HHSA 6PAX","EC120 B F-GYLE","AS355 N F-GUZE","EC130 B4 F-HDRY 6PAX","EC130 B4 F-HDRY 7PAX"};
jComboBox = new JComboBox(appareil);
jComboBox.setBounds(new Rectangle(332, 16, 177, 26));
jComboBox.setBackground(new Color(238, 238, 238));
jComboBox.setVisible(true);
choix();
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 17:18
Methode :

void choix(){
switch(jComboBox.getSelectedIndex()){
case 1: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 2: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 3: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 4: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(false);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(false);
case 5: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 6: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(false);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(false);
case 7: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 8: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(false);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(false);
case 9: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 10: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 11: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
case 12: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(false);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(false);
case 13: jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
}
}

je pense qu'il doit y avoir plus simple comme code aussi.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 17:38
Salut,

Il te faut rajouter un SelectionListenerà ton Combo, attention cependant, le selectionListener n'est pas très pratique à utiliser car il est appelé 2 fois à chaque nouvelle sélectionner : une fois pour te dire que l'ancien élément est déselectionné, et une seconde fois pour te dire que le nouvel élément est sélectionné.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
1 juin 2010 à 17:51
Hello,
Il ne manquerait pas des instructions "break" à la fin de chaque "case"?


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 19:30
Il faut que je rajoute un selectionlistener dans chaque case? Faut il que je mette une insruction spéciale dans le selectionlistener?

Et effectivement il manque des break a la fin de chaque case, merci.

Merci pour votre aide!!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 19:38
Salut,

Non il faut rajouter le SelectionListener sur ton combo. Cet événement sera déclenché à chaque modification de la sélection dans ton combo. C'est dans cet événement qu'il faudra que tu affiches ou masques tes radiobuttons selon la valeur sélectionnée.

Regarde le tutorial que je t'ai envoyé afin de bien comprendre le système de listener SWING et comprendre comment cela peut te servir pour ce que tu cherches à faire.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 08:52
J'ai bien lu le tutoriel mais j'ai du mal à comprendre comment incorper cela à mon code, de plus il utilise des jListe dois je aussi en mettre, j'avoue avoir un peu de mal a voir comment m'y prendre.

Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 juin 2010 à 09:38
Salut,

Le selectionListener est le même qu'il s'agisse d'un JComboBox ou d'un JList. D'ailleurs, voici un tutoriel pour le JComboBox.

Le principe est d'ajouter le listener à ton combo afin qu'il se déclenche à chaque modification d'un élément, et ainsi tu résout ton problème : au lieu d'utiliser un bouton, tu utilise l'événement du combo.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 10:31
Bonjour,

J'ai lu le nouveau tutoriel et j'ai ecrit un bout de code mais cela n'a aucun effet:

private JComboBox getJComboBox() {
if (jComboBox == null) {
String[]appareil = {"Choix de l'appareil","AS350 B1 F-HELY ","AS350 B2 F-GNLP","AS350 B2 F-GTRD 5PAX","AS350 B2 F-GTRD 6PAX","AS350 B1 F-HMER 5PAX","AS350 B1 F-HMER 6PAX","AS350B2 F-HHSA 5PAX","AS350B2 F-HHSA 6PAX","EC120 B F-GYLE","AS355 N F-GUZE","EC130 B4 F-HDRY 6PAX","EC130 B4 F-HDRY 7PAX"};
jComboBox = new JComboBox(appareil);
jComboBox.setBounds(new Rectangle(332, 16, 177, 26));
jComboBox.setBackground(new Color(238, 238, 238));
jComboBox.setVisible(true);
jComboBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
String laSelection = (String) jComboBox.getSelectedItem();
jLabelAppareilTransmit.setText(laSelection);//permet de recuper le texte pour l'envoyer dans la seconde frame
JComboBox cb = (JComboBox)e.getSource();
String HelicoName = (String)cb.getSelectedItem();
updateLabel(HelicoName);

}
});
}

return jComboBox;
}

Et la methode:

protected void updateLabel(String name) {
String laSelection = (String) jComboBox.getSelectedItem();
if(laSelection=="AS350 B1 F-HELY"){
jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
}
if(laSelection=="AS350 B2 F-GTRD 6PAX"){
jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(false);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(false);
}

}
Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 juin 2010 à 10:50
Salut,

Mets un point d'arrêt dans ton code pour voir ce qu'il se passe.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 13:56
J'ai encore un peu de mal avec le spoint d'arret.Lorsque je met un point d'arret, je n'arrive pas a voir les valeurs que prennent mes variables
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 juin 2010 à 14:17
Salut,

Tu laisse ton curseur de souris dessus le nom de la variable, et il devrait t'afficher la valeur dans une info-bulle, ou sinon, tu sélectionnes ta variable, puis clic droit/watch expression.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 14:40
J'ai mis un point d'arret et sur le updateLabel(HelicoName) me donne "no explicit return value.

Ca veut dire qu'il ne trouve pas de valeur?

Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 juin 2010 à 14:50
Salut,

protected void updateLabel(String name) : c'est une méthode, par une fonction, donc non, elle ne renvoie rien... comme te l'indique le message.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 15:30
Ah oui effectivement, mais je ne vois pas ce qu'il faut que je regarde alors avec le point d'arret?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 juin 2010 à 15:34
Salut,

Il faut regarder la valeur des variables de ta méthode updateLabel.

Mais après avoir regardé ton code de plus près, je vois d'où viens ton erreur (erreur archi-classique) : On ne compare pas des string avec == en java mais avec la fonction equals :
if(laSelection=="AS350 B1 F-HELY"){
if("AS350 B1 F-HELY".equals(laSelection)){

Et toujours mettre la valeur constante à gauche, ainsi tu évites les nullPointer.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 15:41
Parfait!! c'est super il fallait juste remplacer le == par le .equals.

Merci beaucoup vous m'aider enormement.

Genial.
Merci
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 16:57
Toujours dans le meme sujet, je voudrais que lors d'un choix dans la combo une checkBox se coche automatiquement.

j'ai mis:

if("AS355 N F-GUZE".equals(laSelection)){
jRadioButtonForfait.setVisible(true);
jRadioButtonEstimee.setVisible(true);
jRadioButtonReelle.setVisible(true);
jRadioButtonDeclaree.setVisible(true);
//jCheckBoxBiTurbine.Selected();
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
2 juin 2010 à 16:58
J'ai essayer avec isSelected mais cela ne marche pas non plus y a t-il une autre instruction svp?
Merci
0
Rejoignez-nous