Estoy desarrollando una aplicación de escritorio Java. En él tengo 4 JButtons
en un JPanel
. Ahora quiero que cada vez que se haga clic en un botón su color de fondo cambie a otro color (por ejemplo naranja) para representar que se ha hecho clic y el color de fondo de los otros 3 botones se restablecerá a su color predeterminado (en caso de que alguno de ellos tenga color de fondo).¿Cómo establecer un color de fondo de un JButton en Java?
Por lo tanto, al mismo tiempo, solo un botón puede tener el color naranja.
El enfoque actual que he solicitado es que he implementado el código siguiente en el método de JButton xxxActionPerformed()
botón1
button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);
y lo mismo para los tres botones de descanso.
Ahora, en realidad, no quiero que el color del fondo de pantalla sea gris (para el botón sin clic). En cambio, quiero el color de fondo predeterminado para que el color de fondo se ajuste a la apariencia de la GUI de acuerdo con el aspecto y la sensación de la plataforma del usuario final.
Q1. ¿Cómo puedo obtener el color de fondo predeterminado?
Q2. ¿Es este el enfoque correcto para hacer esto o hay otro mecanismo mediante el cual pueda agrupar los cuatro botones en un grupo de botones para que solo uno pueda tener la propiedad especificada al mismo tiempo (como botones de opción)?
+1 para JToggleButton. Está usando 'null' confiable? – trashgod
+1 para sugerir el mejor enfoque (usando JToggleButton). Estaba buscando este tipo de enfoque. Gracias –
@trashgod Lo usé muchas veces sin problemas, pero no con JToggleButtons ... de todos modos depende del aspecto y la sensación de honrarlo o no: - | esa es una buena razón para usar el color del UIManager, o usar los iconos –