Méthodes associées au checkbox???

guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004 - 24 mai 2004 à 22:31
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 26 mai 2004 à 00:42
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

guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
24 mai 2004 à 22:33
pardon je viens de remarquer que j'ai laisser des ",c"
c'etait a cause du gridbag...

( GridBagConstraints c = new GridBagConstraints(); )

voila
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 mai 2004 à 00:04
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
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 02:14
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...
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 mai 2004 à 03:13
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);
}
0

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

Posez votre question
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 10:29
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.......
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 10:32
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àà ;)
0
fabulou Messages postés 12 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 4 août 2007
25 mai 2004 à 11:39
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 ;)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 mai 2004 à 14:11
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
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 16:42
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{
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 16:46
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é....
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 mai 2004 à 17:40
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
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 23:50
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
0
guilouis Messages postés 18 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 25 mai 2004
25 mai 2004 à 23:56
hop c bon

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

:big)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
26 mai 2004 à 00:42
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
0
Rejoignez-nous