Eso es todo. Necesito crear un ButtonGroup que permita seleccionar una opción o, si el usuario hace clic en la opción seleccionada, anular la selección del elemento (no se seleccionará nada) y, por supuesto, capturar el evento para hacer algo.¿Cómo crear ButtonGroup de JToggleButton's que permite deseleccionar la opción actual?
Respuesta
Esta muestra exactamente cómo hacer que http://java.dzone.com/articles/unselect-all-toggle-buttons
Sólo en caso de enlace de Jeff se rompe en el futuro, aquí es lo que se describe a continuación: necesita subclase ButtonGroup para permitir que un no-selección, y añadir sus botones para esta buttongroup.
public class NoneSelectedButtonGroup extends ButtonGroup {
@Override
public void setSelected(ButtonModel model, boolean selected) {
if (selected) {
super.setSelected(model, selected);
} else {
clearSelection();
}
}
}
O una clase interna anónima será suficiente, por ejemplo, 'ButtonGroup myGroup = new ButtonGroup() {/ * code from above * /};' – captainroxors
Capture the event para hacer algo. También haz lo siguiente.
@Override
public void actionPerformed(ActionEvent e) {
((JToggleButton)e.getSource()).setSelected(false);
}
EDIT: Pero no hay ButtonGroup involucrados.
Solución para java pre 1,6
public class NoneSelectedButtonGroup extends ButtonGroup {
private AbstractButton hack;
public NoneSelectedButtonGroup() {
super();
hack = new JButton();
add(hack);
}
@Override
public void setSelected(ButtonModel model, boolean selected) {
super.setSelected(selected ? model : hack.getModel(), true);
}
}
he notado un comportamiento extraño cuando se hace button.setSelected(false)
en un botón/casilla que no esté seleccionado. Se deseleccionó todo como si hubiera deseleccionado algo.
i fijo de esta manera:
public class NoneSelectedButtonGroup extends ButtonGroup {
@Override
public void setSelected(ButtonModel model, boolean selected) {
if (selected) {
super.setSelected(model, selected);
} else if (getSelection() != model) {
clearSelection();
}
}
}
- 1. Deseleccionar selección predeterminada en JTextfield
- 2. Crear preg_match para la validación de contraseña que permite (! @ # $%)
- 3. Obtener opción seleccionada actual
- 4. ¿Oracle permite la opción de lectura no confirmada?
- 5. Cómo obtengo qué JRadioButton se selecciona de un ButtonGroup
- 6. ¿Cómo deseleccionar un elemento en un cuadro de selección?
- 7. Proveedor de geolocalización para Firefox que permite la entrada manual
- 8. "Seleccionar/Deseleccionar" múltiples campos seleccionados
- 9. Cómo deseleccionar una anotación de mapa en la segunda pulsación
- 10. Cómo crear una ventana semitransparente en WPF que permite que los eventos del mouse pasen
- 11. ¿Cómo detectar el botón de radio? ¿Deseleccionar evento?
- 12. Cómo deseleccionar un enlace usando jquery
- 13. ¿Cómo deseleccionar el operador String "+" en Scala?
- 14. ¿Cómo puedo deseleccionar el elemento en ListView?
- 15. JQuery crear nueva opción de selección
- 16. ABPeoplePickerNavigationController alternativa que permite la selección de varias personas
- 17. Deseleccionar texto seleccionado en JTextPane
- 18. Java BitSet que permite la fácil Concatenación de BitSets
- 19. Cómo probar la lógica que depende de la fecha actual
- 20. propósito de la opción "Crear automáticamente" en Eclipse
- 21. Limpiar NHibernate al tiempo que permite la reversión de transacción
- 22. campo de entrada Deseleccionar/unfocus usando jQuery
- 23. jquery, casilla de verificación deseleccionar por valor
- 24. Deseleccionar clave de carga no válida Error, '{'
- 25. ¿Cómo hacer que DateTime sea independiente de la cultura actual?
- 26. Desactivado <input> que permite la selección de texto?
- 27. ¿Para qué sirve la opción 'sonar' para crear bibliotecas compartidas?
- 28. ¿Cómo reemplazar inmediatamente la tostada actual por una segunda sin esperar a que la actual termine?
- 29. Cómo crear un UIImage del contexto de gráficos actual?
- 30. @ Html.DropDownListFor ¿Cómo agregar la opción?
que podría no ser intuitivo para el usuario. ¿Has pensado en hacer una opción para representar el estado/elección que correspondería a la anulación? –