Pb avec 'if ( (row>>1)<<1 == row )'

kobee12 Messages postés 153 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 31 octobre 2006 - 27 févr. 2004 à 19:40
kobee12 Messages postés 153 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 31 octobre 2006 - 29 févr. 2004 à 14:48
Salut a tous.
J'ai une fonction isCellEditable pour l'edition des tables :
DefaultTableModel df = new DefaultTableModel() {
public boolean isCellEditable(int row, int col )
{
if ( (row>>1)<<1 == row )
return true;
return false;
}
};

Mon pb c'est qu'elle n'edite qu'une ligne sur deux!!
Elle edite la premiere, pas la deuxieme, la troisieme, pas la quatrieme...
Ceci vient de ce que j'ai mis en gras. J'ai trouve ca dans un code. Par contre je ne comprends pas ce ca que signifie.

J'ai essaye avec un evt de souris, ca marche bien, toutes les lignes sont editables.
Par contre je veux par la suite pouvoir mettre a jour ma BD quand je changerai des infos dans ma table et je pense que j'ai besoin du num d'enregisterement et de la colonne.Enfin je crois que je peux faire comme ca, il y a peut etre plus simple mais que je commence seulement a me lancer dedans et dc je ne sais pas.

Donc si quelqu'un peut m'aider a comprendre ce que signifie le code, et optionellement s'il sait comment mettre a jour une BD a partir d'une table, il sera super sympa de me repondre.
Voila @ + kobee12
:big)

4 réponses

kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
28 févr. 2004 à 08:27
kaloway

les instruction ">>" et "<<" sont des décalages vers la droite et vers la gauche de n bits.

exemple

row=6 en binaire 0110

si on fait row>>1, ce qui nous donne 0011 en binaire et 3 en décimal.
si on fait row<<1, ce qui nous donne 1100 en binaire et 12 en décimal.
Le principe du décalage est un moyen rapide pour diviser ou multiplier par un multiple de 2 puissance N (2, 4, 8, 16, 32, 64, 128).
0
cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 1
28 févr. 2004 à 18:00
le décalage à droite puis à gauche ne donne le même résultat que si row se termine par un 0 c'est à dire si row est pair.
ex : row=7
0111>>1 donne 0011
0011<<1 donne 0110

tu récupère donc bien une colone sur 2

DOBELIOU
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
28 févr. 2004 à 19:12
GodConan :clown)

en gros ton test il ser a discriminer les ligne pair des ligne impair ;o) c dailleur ;o) joliement fait ;o)

il te suffit de renvoyer TRUE a chac foi pour que toute t lignes soit editable

++
0
kobee12 Messages postés 153 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 31 octobre 2006 1
29 févr. 2004 à 14:48
Je vous remercie pour toutes ces infos.
c'est plus clair maintenant!
kobee12
:big)
0
Rejoignez-nous