Cuando creo un par de botones de opción (new Button(parent, SWT.RADIO)
) y configuro la selección mediante programación utilizando radioButton5.setSelection(true)
, el botón de opción seleccionado anteriormente también permanece seleccionado. ¿Debo iterar sobre todos los otros botones de opción del mismo grupo para deseleccionarlos o hay una alternativa más simple? Gracias por adelantado.SWT: configure los botones de radio mediante programación
Respuesta
Lamentablemente, debe iterar sobre todas las opciones. Por primera vez cuando aparece su UI, se desencadena un evento BN_CLICKED
. Si su Shell
o Group
o lo que sea contenedor de botones de radio no se crea con SWT.NO_RADIO_GROUP
opción, entonces el siguiente método se llama:
void selectRadio()
{
Control [] children = parent._getChildren();
for (int i=0; i<children.length; i++) {
Control child = children [i];
if (this != child) child.setRadioSelection (false);
}
setSelection (true);
}
Así que, esencialmente eclipsar su vez depende de la iteración en todos los botones de radio y alternar su estado.
Cada vez que selecciona manualmente un botón de radio, el evento BN_CLICKED
se activa y, por lo tanto, se alterna automáticamente.
Cuando se utiliza button.setSelection(boolean)
entonces no BN_CLICKED
El evento se activa. Por lo tanto, no hay alternar automáticamente los botones de opción.
Consulte la clase org.eclipse.swt.widgets.Button
para obtener más información.
Esto debería suceder automáticamente. ¿Cómo estás creando los botones? ¿Están en el mismo padre? ¿El padre está usando el estilo NO_RADIO_GROUP?
Los botones de opción dentro del mismo compuesto actuarían como un grupo. Solo se seleccionará un botón de opción a la vez. Aquí hay un ejemplo de trabajo:
Composite composite = new Composite(parent, SWT.NONE);
Button btnCopy = new Button(composite, SWT.RADIO);
btnCopy.setText("Copy Element");
btnCopy.setSelection(false);
Button btnMove = new Button(composite, SWT.RADIO);
btnMove.setText("Move Element");
- 1. ¿Cuándo debo usar los botones de radio?
- 2. jQuery Mobile - Estado Cambio botón de radio mediante programación
- 3. jQueryUI Botones de radio/comprobación que no cambian por programación
- 4. Agregar botones mediante programación a un fragmento
- 5. Los botones de radio sobre rieles
- 6. Firefox recordando incorrectamente los botones de radio
- 7. jQuery Convert Seleccione los botones de Radio?
- 8. ¿Cómo usar setTextColor para los botones de radio de Android?
- 9. Botones de radio Yii
- 10. botones de radio AngularJS
- 11. CakePHP crear botones de radio
- 12. Botones de radio grupo XAML
- 13. JFace/SWT: cambie las etiquetas de los botones en InputDialog
- 14. Grupo de botones de radio: los eventos de cambio para los botones se anulan?
- 15. Android: agregar botones mediante programación a un diseño
- 16. ¿Cómo puedo agrupar los botones de radio de Windows Form?
- 17. ¿Cómo cambio el color de los botones de radio?
- 18. Poner bordes CSS alrededor de los botones de radio
- 19. tanto de los botones de radio puede ser seleccionado
- 20. ¿Cómo obtener OnClick() desde botones agregados mediante programación?
- 21. Diseño de lista de botones de radio ASP .Net
- 22. Botones de radio + elementos de matriz
- 23. ¿Cuáles son las alternativas para los botones de radio?
- 24. ¿Cómo puedo activar los botones de radio desactivados?
- 25. Como ir todos los botones de radio sin marcar
- 26. Alinear los botones de radio horizontalmente en formularios django
- 27. ¿Cómo puedo manejar mejor los botones de radio WPF?
- 28. Cómo asociar etiquetas con los botones de radio
- 29. ¿Dos botones de radio comparten una "identificación"?
- 30. agrupar botones de radio en Zend Framework
Incluso si están en el mismo elemento primario y el elemento primario no se ha creado con 'NO_RADIO_GROUP', aún muestran el comportamiento mencionado en la pregunta. El comportamiento es al menos en Windows Vista con eclipse 3.6. Si está trabajando en otras versiones de SO o eclipse, entonces es un ** SWT Bug **. – Favonius