Estou montando o projeto de tcc da faculdade e montei um layout para o software onde quando a pessoa passe o mouse em cima do botão, ao invés da cor do botão ficar azulzinho, que é a padrão que vem, eu gostaria de mudar para laranja.
A parte de fazer o evento ao passar o mouse em cima, sem problemas, o problema é como alterar a cor.
O método: bt_home.setForeground(Color.orange); altera a cor do texto que esta no botão.
O método: bt_home.setBackground(Color.orange); altera a cor do fundo do botão e quando digo fundo seria atrás do botão, como se fosse uma parede com um quadro, onde o quadro seria o botão, neste caso, ele alteraria a cor da parede e não do quadro.
Podes criar uma classe que estende a classe JButton ou JToggleButton e sobrescrever os métodos getImage() e getRover(), assim mais ou menos:
[code]public class Botao extends JButton{
private Icon image;
private Icon rover;
public Botao(String imagePath, String roverPath) {
try {
image = new ImageIcon(ImageIO.read(Thread.currentThread().getClass().getResourceAsStream(imagePath)));
rover = new ImageIcon(ImageIO.read(Thread.currentThread().getClass().getResourceAsStream(roverPath)));
} catch (IOException ex) {
Logger.getLogger(Botao.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Icon getImage() {
return image;
}
public Icon getRover() {
return rover;
}
}
[/code]
Ai passas como parâmetro duas imagens que criasses, tipo no photoshop ou paint(só para os mais hardcore xD) e ele vai colocar essas imagens nos botões, com isso podes fazer botões mais estilizados…
Obs.: Image é a imagem que vai aparecer no botão, imageRover é a imagem que aparece quando o mouse está sobre o botão
Pra colocar as imagens nos botões é só fazer assim:
Botao botaoImages = new Botao("/images/botao.png", "/images/botaoRover.png"));
meuBotao.setIcon(botaoImages.getImage);
meuBotao.setRolloverIcon(botaoImages.getRover);
O problema de tu não estar conseguindo pelo setBackground, é que o teu lookAndFeel é windows, e não Nimbus, se não gostar dessa solução que eu te dei, sugiro olhar aqui
Qualquer dúvida é só perguntar.
E se alguém quiser fazer uma crítica do meu código, pode postar aqui, me ajudaria bastante