Mantén la atención porque en esta reseña encontrarás la solución que buscas.
Solución:
JToggleButton btn = new JToggleButton(...);
btn.setUI(new MetalToggleButtonUI()
@Override
protected Color getSelectColor()
return Color.RED;
);
“ToggleButton.selected” es incorrecto, requiere “ToggleButton.select”. Y debe actualizarse al componente.
UIManager.put("ToggleButton.select", Color.WHITE);
SwingUtilities.updateComponentTreeUI(togglebuttonname);
Podrías ver si setIcon()
es suficiente para su propósito, pero también puede anular paint()
en el ButtonUI
delegar.
Anexo: el comentario de @kleopatra está bien tomado: cambiar el delegado de la interfaz de usuario es no trivial. El ejemplo reciente de @mKorbel muestra tanto la dificultad como la versatilidad del enfoque. Su ventaja esencial es la independencia de look & feel.
Aquí se mencionan algunos enfoques menos ambiciosos.
Sección de Reseñas y Valoraciones
Más adelante puedes encontrar las anotaciones de otros desarrolladores, tú igualmente tienes la opción de mostrar el tuyo si dominas el tema.