Solo crea dos imágenes de casilla de verificación. Primero sin marca y segundo con marca. Ahora agregue la primera imagen al encabezado tableColumn. Después de eso, agregue listener a tableColumn de tal forma que cuando haga clic en el botón por primera vez, se debe disparar el método table.selectALL()
junto con cambiar la imagen del encabezado tableColumn a la segunda. Cuando vuelva a hacer clic en el botón, llame al método table.deSelectAll()
y reemplace el encabezado tableColumn con la primera imagen.
Se puede utilizar esta condición:
Cuando se hace clic en la casilla de verificación (imagen), utilizar un bucle para comprobar si, cualquiera de las casillas de la tabla se comprueba. si alguien se encuentra marcado, entonces tabla de fuego.deSelectAll() método, sino fuego table.selectAll() método.
No habrá ningún problema para la "casilla" durante el cambio de tamaño de la tabla/viuda.
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();
}
}
}
});
la respuesta lenta He querido probar esto por siglos. Lo intentaré y lo aceptaré si hace lo que creo que va a hacer :) ¡Gracias! –
No hay problema. Deja un comentario si no funciona como se esperaba. –