Méthodes associées au checkbox???

Signaler
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004
-
Twinuts
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
-
bsoir je n'arrive pas à utiliser un checkbox, si qqun peut m'aider merci:

ex:

latitude = new CheckboxGroup();
orientation= new Checkbox[2];

pansud.add(orientation[0]= new Checkbox ("N", latitude, true),c);
orientation.addItemListener(this);

pansud.add(orientation[1] = new Checkbox ("S", latitude, false),c);
orientation[1].addItemListener(this);

public void itemStateChanged(ItemEvent e) {
if (latitude.getSelectedCheckbox()= N){
System.out.println("Nord ");
}
else
System.out.println("Sud ");
}

j'ai tout essayer mais j'ai toujour des erreur
si qun peu m'aider... help :big)

merci

14 réponses

Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

pardon je viens de remarquer que j'ai laisser des ",c"
c'etait a cause du gridbag...

( GridBagConstraints c = new GridBagConstraints(); )

voila
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
90
hello,

String [] sz = {"N", "S"};
boolean [] bool = {false, true};

CheckboxGroup latitude = new CheckboxGroup();
Checkbox [] orientation= new Checkbox[2];
for(int i = 0; i < orientation.length; i++){
orientation[i] = new Checkbox(sz[i], latitude, bool[i]);
orientation[i].setBounds(new Rectangle(50, 50 + 2 * i, 30, 20));
pansud.add(orientation[i], null);
}
c du vite fais mais ca creer tes 2 Checkbox
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

c gentil ,
mais le probleme n'est pas du tout là..... enfin je crois...

mon probleme n'est pas dans la creation des checkbox....
mais plutot dans le fait des actions qui s'en suivent :
je m'explique:
je veux pouvoir ecrire que si je suis dans un cas, des variables prennent certaines valeurs
et si je suis ds l'autre cas les variables prennent alors une autre valeurs....

pouvoir distinguer les cas.....par la suite voila ce qui m'interesse ..et je n'y arrive pas...le probleme est en fait ici:

public void itemStateChanged(ItemEvent e) {
if (latitude.getSelectedCheckbox()= N){
System.out.println("Nord ");
}
else
System.out.println("Sud ");
}

merci en tout cas...
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
90
soir,

de tete je ferais comme ca manan a voir vu que je n'ai pas testé

public boolean action (Event event, Object eventArg){
for (int i = 0; i < orientation.length; i++) {
if (event.target == orientation[i]) {
if (orientation[i].getLabel().startsWith(sz[i])) { System.out.print(sz[i]); }
}
return true;
}
return super.action(event, eventArg);
}
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

bon c gentil de m'aider, mais meme avec ca je ne m'en sort pas :sad)

donc voilà ce que j'ai tapé :

public boolean action (Event event, Object eventArg){
for (int i = 0; i < orientation.length; i++) {
if (event.target == orientation[i]) {
if (orientation[i].getLabel().startsWith("Nord")) {
System.out.println(" NORD");}
}
return true;
}
return super.action(event, eventArg);
}

il n'y a apperemment pas d'erreur mais j'ai un message sous le DOS que je ne comprend pas du tout ( remarque : je ne me suis encore jamais servi de "public boolean"....)

"" Note : monfichier.java uses or overrides a deceprated API.
Note : Recompile with -decrepation for details. ""

et je ne sais pas du tout ce que c'est ????? :sad)
:sad)

merci quand meme.......
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

petit rappel car je ne sais pas du tout a quoi ca sert car je n'arrive pas a le compiler...
mais pour resumer en franco-java :
je veux pouvoir dire :

if (le Nord est selectionné) :clown)

y=0;

sinon ( donc si le sud est selectionné...)

y=100000;

foilàà ;)
Messages postés
12
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
4 août 2007

Salut

Et si tu essayes ca ?

public void itemStateChanged(ItemEvent e) 
{
      CheckBox c = (CheckBox)e.getItemSelectable()
      if (orientation[0] == c)
          System.out.println("Nord "); 
      else
           System.out.println("Sud "); 
}


Fabulou ;)
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
90
tiens essaye ca et ne dis pas sa fonctionne pas je vien de le test

public boolean action (Event event, Object eventArg){
if (event.target == orientation[0]) {
if (orientation[0].getLabel().startsWith("N")) {
System.out.println("Nord");
}
return true;
}else if (event.target == orientation[1]) {
if (orientation[1].getLabel().startsWith("S")) {
System.out.println("Sud");
}
return true;
}
return super.action(event, eventArg);
}

Pour ton message c normal le compilo t'indique juste que l'on vient d'outrepasser la déclaration de l'event action

Si il te génère une erreur cela ne vient pas de cet exemple donc revérifie tes implémentation

Ne désespère pas, je lâcherai le sujet que qd tu m'auras dis c cool tout fonctionne, donc keepcool y a une soluce a tout problème
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

he bien j'avais deja fait la meme chose....
je viens donc de le retenter (on ne sait jamais....) et ça ne marche toujours pas.... :sad) :sad) :sad) :sad)

remarque : si je ne met pas les lignes de codes que tu as ecrite precedemment le programme marche correctement mais evidemment pas avec tous les details que je voudrais et qui sont essentiel :sad) :sad)

le probleme vient peut etre de mes declarations et implementatioin precedente :

voila ce que je fais:

extends java.applet.Applet implements MouseMotionListener, ActionListener, ItemListener{
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

he bien j'avais deja fait la meme chose....
je viens donc de le retenter (on ne sait jamais....) et ça ne marche toujours pas.... :sad) :sad) :sad) :sad)

remarque : si je ne met pas les lignes de codes que tu as ecrite precedemment le programme marche correctement mais evidemment pas avec tous les details que je voudrais et qui sont essentiel :sad) :sad)

le probleme vient peut etre de mes declarations et implementatioin precedente :

voila ce que je fais:

extends java.applet.Applet implements MouseMotionListener, ActionListener, ItemListener{

(c ce dernier qui compte ...enfin je pense car j'ai jamais utilisé boolean auparavant...)

et je definie ensuite :

orientation[0].addItemListener(this);
orientation[1].addItemListener(this);

et apres et bien je met public boolean....(ce qui est ds ton message....)

foilà le message d'erreur est toujours le meme sous DOS:

"" Note : monfichier.java uses or overrides a deprecated API.
Note : Recompile with -deprecation for details. ""

et j'ai eu bo chercher ds la doc API je n'ai pas trouvé....

encore desolé....
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
90
tiens essaye ca chez moi ca passe niquel

package toto;

import java.awt.Panel;
import java.awt.BorderLayout;
import java.awt.CheckboxGroup;
import java.awt.Checkbox;
import java.applet.Applet;
import java.awt.Event;

public class ActionCheckbox extends Applet {
  Panel pansud = new Panel();
  BorderLayout borderLayout1 = new BorderLayout();
  CheckboxGroup latitude;
  Checkbox [] orientation;
  String [] sz = {"N", "S"};
  boolean [] bool = {false, true};

  public void init() {
    try { Init(); }
    catch(Exception e) { e.printStackTrace(); }
  }
  private void Init() throws Exception {
    this.setLayout(borderLayout1);
    latitude = new CheckboxGroup();
    orientation= new Checkbox[2];
    for(int i = 0; i < orientation.length; i++){
      orientation[i] = new Checkbox(sz[i], latitude, bool[i]);
      pansud.add(orientation[i]);
    }
    this.add(pansud,  BorderLayout.CENTER);
  }
  public boolean action (Event event, Object eventArg){
    if (event.target == orientation[0]) {
        if (orientation[0].getLabel().startsWith("N")) { System.out.println("Nord"); }
      return true;
    }else if (event.target == orientation[1]) {
        if (orientation[1].getLabel().startsWith("S")) { System.out.println("Sud"); }
      return true;
    }
    return super.action(event, eventArg);
  }
}


itemListerner tu n'en a plus besoin c générer autrement dans l'event action.

Pour ce qui est du deprecated ça veux simplement dire comme je te l'ai di plus haut que tu outrepasse une méthode, genre tu reprend une méthode native (ui ui la méthode boolean action est native à java) et tu lui repasses des paramètres par dessus enfin c comme ça que je le comprends.

Il doit sûrement y avoir un post expliquant ça sur le forum
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

hello donc déjà un grand merci parceque ça marche :big) :big)
(par contre j'ai toujours le message d'alerte sous le DOS...., mais bon c normal....)

mainteant ce qui me pose un leger probleme c que j'ai beaucoup de checkboxgroup differents........ et je n'arrive meme pas a en faire marché 2....

je declare ds l'init

Event eventn event1,event2........;

et je fais cela

public boolean action (Event event, Object eventArg){
if (event.target == orientationA_0[0]) {
if (orientationA_0[0].getLabel().startsWith("N")) {
System.out.println("Nord");
}
return true;
}else if (event.target == orientationA_0[1]) {
if (orientationA_0[1].getLabel().startsWith("S")) {
System.out.println("Sud");
}
return true;
}

return super.action(event, eventArg);

if (event1.target == orientationA_1[0]) {
if (orientationA_1[0].getLabel().startsWith("N")) {
System.out.println("Nord");
}
return true;
}else if (event1.target == orientationA_1[1]) {
if (orientationA_1[1].getLabel().startsWith("S")) {
System.out.println("Sud");
}
return true;
}
return super.action(event1, eventArg);

}

pb ça ne marche pas et je ne vois aucune raison pkoi .....

"unreachable statement
if (event1.target == orientationA_1[1]) "

je cherche.... %-6
Messages postés
18
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
25 mai 2004

hop c bon

je laisse le meme event et c bon ......

:big)
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
90
Pourquoi avoir voulu mettre plusieurs event? vu que ce qui compte c event.target == monComposant

Je suppose ton truc à un lien avec ton post sur les segments?

je voudrai simplement rectifier un truc sur ton bout de code

public boolean action (Event event, Object eventArg){
if (event.target == orientationA_0[0]) {
if (orientationA_0[0].getLabel().startsWith("N")) { 
System.out.println("Nord");
}
return true;
}else if (event.target == orientationA_0[1]) {
if (orientationA_0[1].getLabel().startsWith("S")) { 
System.out.println("Sud");
}
return true;
}else if (event.target == orientationA_1[0]) {
if (orientationA_1[0].getLabel().startsWith("N")) { 
System.out.println("Nord");
}
return true;
}else if (event.target == orientationA_1[1]) {
if (orientationA_1[1].getLabel().startsWith("S")) {
System.out.println("Sud");
}
return true;
}
return super.action(event1, eventArg);
}


Ne cumule pas super.action(event, eventArg);
c inutile

sinon ptite astuce si tu veux que deux composant renvoi le même event utilise

postEvent (new Event (this, Event.ACTION_EVENT, "label"));

le " label " représente le label du composant au quel on désir récupérer l'event(donc a adapter si tu as plusieurs label identique)

si tu ne saisi pas mon explication regarde dans la doc java une explication a postEvent tu verra c bien util ca limite les ligne de code