Alterar cor do JToggleButton

Boa tarde,

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.

Grato desde já.

Não entendi.
Usando o setBackground(), fica assim. Não é isso que vc quer?


não, não, queria que ficasse assim neste modelo mais ou menos:

mas ele está assim:

e se eu uso o setBackground() ele fica assim:

Resumidamente, eu queria mudar o tom do azul para laranja.

Ahh, agora que vi que é ToggleButton. Não pode usar JButton mesmo não?

Nunca usei Toggle hahaha.

Pode ser tb.

Mas o JButton acontece a mesma coisa tb :S

Acho que a mesma solução para o JToggle eh para o JButton.

Alguma idéia para o JButton?

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 :smiley:

Humm … não deu certo não.

Ele perde o efeito de ir escurecendo a cor. Só queria mudar do azul para o laranja msm.

Mas gostei deste site que postou, tem bastante coisa que acho que vou usar.