Array
(
)

Mudar cor do Botão....

Lima_will
   - 06 out 2009

É possivel fazer o botão mudar de cor? Tipo ele está na cor verde e se ocorrer determinado evento fazer o botão mudar de cor, se for possivel como o fazer?

William Siqueira
   - 07 out 2009

Oi, Usa o setBackground. Um exemplo(liga não, sou fã de JavaSwing :P): #Código package testeSwing; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class MudaCorBotao extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JButton btn; private final Color C1 = Color.YELLOW, C2 = Color.GREEN; public MudaCorBotao() { super("Mudar cor do botão"); setSize(300, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); add(btn = new JButton("Mudar Cor")); btn.setBackground(C1); btn.setBounds(5, 5, 100, 25); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { //Se for a cor um, então mudo para a cor 2... btn.setBackground(btn.getBackground() == C1 ? C2 : C1); } }); } public static void main(String[] args) { new MudaCorBotao().setVisible(true); } }

0
|
0

Daniel Benetti
   - 06 ago 2010

Olá, sei que o post já tem um ano, mas acabo de ver que estou com um problema relativo a exatamente esse assunto, estou desenvolvendo uma aplicação para Win XP e até hoje estava usando o tema clássico do Windows (aquele com as barras e janelas cinza, era default no win98), onde o botão do meu programa realmente ficava da cor que eu queria, mas hoje a aplicação foi testada em um outro computador com XP e com o tema do próprio XP (aquele mais colorido), o q acontece é que apenas as bordas do botão mudam de cor, e não o botão todo, abaixo a imagem dos dois casos. O codigo que usei foi exatamente esse que vc postou para testar.... Alguem pode ajudar? Grato. [url=http://uploaddeimagens.com.br/imagem/index/boto_correto.gif]Clique na imagem para abrir em uma nova janela[/url] [url=http://uploaddeimagens.com.br/imagem/index/boto_errado.gif]Clique na imagem para abrir em uma nova janela[/url]

0
|
0

Ronie Brunhara
   - 17 mar 2013


Citação:
="jesuino"]Oi, Usa o setBackground. Um exemplo(liga não, sou fã de JavaSwing :P): #Código package testeSwing; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class MudaCorBotao extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JButton btn; private final Color C1 = Color.YELLOW, C2 = Color.GREEN; public MudaCorBotao() { super("Mudar cor do botão"); setSize(300, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); add(btn = new JButton("Mudar Cor")); btn.setBackground(C1); btn.setBounds(5, 5, 100, 25); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { //Se for a cor um, então mudo para a cor 2... btn.setBackground(btn.getBackground() == C1 ? C2 : C1); } }); } public static void main(String[] args) { new MudaCorBotao().setVisible(true); } }
SE eu quisesse utilizar um terceira cor como ficaria a FORMULA de C1, C2 e C3

0
|
0

Ms27817
|
MVP
    17 mar 2013

Basta comparar a cor e atribuir a seguinte: #Código if(btn.getBackground() == C1) { btn.setBackground(C2); } else if(btn.getBackground() == C2) { btn.setBackground(C3); } else { btn.setBackground(C1); } Você poderia também substituir esses if´s usando um Map, onde a chave seria a cor atual e o valor seria a cor seguinte.

0
|
0

Rodrigo Brunhara
   - 17 mar 2013

Ai como eu faria...pegar por exemplo em uma tela minha tenho o valor de TFx,TFy para gerar a matriz, quando eu clicar em gerar matriz o valor de TFx,TFy vai gerar a matriz de botoes que to fazendo na outra tela!! como faço issso, ouseja pegar aquele valor jogar no "for" e e assim faz a a matriz de botoes ..especificada pelo usuario tem como observa esse codigo para mim : é o meu ai ver tem como me ajudar http://javafree.uol.com.br/topic-889560-Sabe-como-pegar-o-valor-de-TxtField-de-Jframe-e-madar-o-valor-x-para-preencher-a-matriz.html

0
|
0

Ronie Brunhara
   - 17 mar 2013


Citação:
="ms27817"]Basta comparar a cor e atribuir a seguinte: #Código if(btn.getBackground() == C1) { btn.setBackground(C2); } else if(btn.getBackground() == C2) { btn.setBackground(C3); } else { btn.setBackground(C1); } Você poderia também substituir esses if´s usando um Map, onde a chave seria a cor atual e o valor seria a cor seguinte.
DEU CERTO OBRIGADO NOVAMENTE, se puder passar seu email para qualquer outra duvida agradeço!

0
|
0

Ms27817
|
MVP
    17 mar 2013

Então, dúvidas somente pelo fórum. Sem MP ou email

0
|
0

Sheap
   - 26 fev 2015

estou com o mesmo problema do criador do tópico, quando altero pelo NetBeans o setBackground do botão altera somente o contorno o preechimento do botão não muda a cor.

0
|
0

Ricardo Staroski
   - 26 fev 2015

Para que a cor de fundo fique visível, seu JButton precisa estar opaco. Depois que você o instanciou, faça um #Código meuBotao.setOpaque(true); Depois disso, você vai perceber a mudança de cor com o #Código meuBotao.setBackground(instanciaDaCorDesejada);

0
|
0

Wellingtpm
   - 26 fev 2015

Olá Lima_will, que tal criar um botão "personalizado"? ao invés de criar um JButton propriamente dito, crie um JLabel e adicione à ele um Evento de ação ao clicar e finalmente escolha um ícone para seu botão (ícones com fundo transparentes são ideais) e set o ícone do JLabel e pronto! forte abraço

0
|
0