2011-10-22 5 views
5

Come posso impostare il colore di un JButton?come impostare il colore di Jbutton

Ho provato questo:

button.setBackground(Color.red); 

ma senza successo. Questo cambia solo il colore del bordo del pulsante. Allora ho provato a ignorare paintComponents

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

ma ora non vedo il testo sulla JButton

risposta

6

Il modo migliore per colorare i pulsanti è di usare ImageIcons anziché testo. È possibile utilizzare Gimp per progettarli.

Assicurarsi che lo sfondo sia trasparente!

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

Questo è un disabile button.setDisabledIcon(... tasto:

enter image description here

Questo è un pulsante attivato, non premuto:

enter image description here

Questo è un tasto abilitato premuto:

enter image description here

Il cambio colore di sfondo dopo aver premuto viene eseguito da Swing. Hai bisogno solo di 2 immagini per questo.

+0

sì, lo provo anche io, ma quando uso l'icona su tutto il pulsante, non viene eseguita alcuna azione grafica (cambio di colore) quando si preme il pulsante. – hudi

+0

Il piccolo trucco qui è che si dovrebbe rendere lo sfondo dell'immagine trasparente. –

+0

+1 ma non so cosa Gimp abbia a che fare con questo. È possibile produrre un'immagine a tinta unita in fase di esecuzione in circa 5 righe di codice. –

3

Quello che il colore di sfondo influenza dipende dal vostro aspetto grafico. Vedi http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/index.html

È necessario scegliere un aspetto che utilizzi il colore di sfondo nel modo desiderato. Non so cosa stai usando al momento. Se si dispone di impostazione predefinita LAF il colore e la rimozione di confine dovrebbe essere sufficiente:

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