2011-10-22 13 views
5

¿Cómo puedo establecer el color de un JButton?cómo establecer el color de Jbutton

He intentado esto:

button.setBackground(Color.red); 

pero sin éxito. Esto simplemente cambia el color del borde del botón. Luego trató de anular paintComponents

public void paintComponent(Graphics g) { 
    g.setColor(Color.GREEN); 
    g.fillRect(0, 0, getSize().width, getSize().height); 
} 

pero ahora no veo el texto de la JButton

Respuesta

6

La mejor manera de dar color a sus botones es utilizar ImageIcons en lugar de texto. Puede usar Gimp para diseñarlos.

Asegúrese de que el fondo sea transparente!

button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png"))); 

Esta es una button.setDisabledIcon(... botón deshabilitado:

enter image description here

Este es un botón activado, no presiona:

enter image description here

Se trata de un botón activado presionado:

enter image description here

El cambio de color de fondo después de presionar se realiza con Swing. Necesitas solo 2 imágenes para esto.

+0

Sí, lo intento también, pero cuando uso el ícono para el botón completo, no hay acción gráfica (cambio de color) cuando se presiona el botón. – hudi

+0

El pequeño truco aquí es que debe hacer que el fondo de la imagen sea transparente. –

+0

+1 pero no sé qué tiene que ver Gimp con eso. Puede producir una imagen de color sólido en tiempo de ejecución en alrededor de 5 líneas de código. –

3

Lo que afecta el color de fondo depende de su apariencia. Ver http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/index.html

Debe elegir una apariencia que utilice el color de fondo de la forma que desee. No sé lo que estás usando en este momento. Si tiene la configuración predeterminada LAF el color y la eliminación de la frontera debe ser lo suficientemente:

button.setBackground(color); 
button.setBorder(null); 
Cuestiones relacionadas