Il suffit de créer deux images de case à cocher. Le premier sans une coche et le deuxième ayant une coche. Maintenant, ajoutez la première image à l'en-tête tableColonne. Après cela, ajoutez listener à tableColumn de telle sorte que lorsque vous cliquez sur le bouton pour la première fois, la méthode table.selectALL()
doit être déclenchée avec la modification de l'image d'en-tête tableColumn en deuxième. Lorsque vous cliquez à nouveau sur le bouton, appelez la méthode table.deSelectAll()
et remplacez l'en-tête tableColumn par la première image.
Vous pouvez utiliser cette condition:
Lorsque la case à cocher (image) est cliqué, utilisez une boucle pour vérifier si, l'une des cases du tableau est cochée. si quelqu'un est trouvé vérifié puis déclenche la méthode table.deSelectAll(), sinon déclenche méthode table.selectAll().
Il n'y aura aucun problème pour la "case à cocher" lors du redimensionnement de table/veuve.
tableColumn0.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
// TODO Auto-generated method stub
boolean checkBoxFlag = false;
for (int i = 0; i < table.getItemCount(); i++) {
if (table.getItems()[i].getChecked()) {
checkBoxFlag = true;
}
}
if (checkBoxFlag) {
for (int m = 0; m < table.getItemCount(); m++) {
table.getItems()[m].setChecked(false);
tableColumn0.setImage(new Image(Display.getCurrent(),
"images/chkBox.PNG"));
table.deselectAll();
}
} else {
for (int m = 0; m < table.getItemCount(); m++) {
table.getItems()[m].setChecked(true);
tableColumn0.setImage(new Image(Display.getCurrent(),
"images/chkBox2.PNG"));
table.selectAll();
}
}
}
});
Désolé pour la réponse lente. Je voulais essayer ça depuis des lustres. Je vais essayer et accepter si ça fait ce que je pense que ça va :) Merci! –
Pas de problème. Déposez un commentaire si cela ne fonctionne pas comme prévu. –