Cor da fonte num combobox

10 respostas
M

ola pessoal
estou usando o netbeans
tenho um combobox
mudei o foreground para azul para mudar a cor da fonte dos itens do combo
pelo netbeans aparece a cor azul
em modo de execucao fica cor preta
como resolver
obrigado

10 Respostas

R

Você terá de criar um Renderer personalizado para sua ComboBox:

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer

F

marcoscorso:
ola pessoal
estou usando o netbeans
tenho um combobox
mudei o foreground para azul para mudar a cor da fonte dos itens do combo
pelo netbeans aparece a cor azul
em modo de execucao fica cor preta
como resolver
obrigado

Você pode pegar o editor do JComboBox e mudar…veja.

JTextField comboEditor = (JTextField)meuJComboBox.getEditor().getEditorComponent();
comboEditor.setForeground(Color.BLUE);
comboEditor.setFont(new Font("Tahoma", Font.BOLD, 11));

t+ e boa sorte.

R

fernandopaiva: acho que não é comum, mas é possível que o editor da ComboBox não seja um JTextField, então vale a pena fazer uma checagem de tipo:

if (meuJComboBox.getEditor().getEditorComponent() instanceof JTextField) { JTextField comboEditor = (JTextField)meuJComboBox.getEditor().getEditorComponent(); comboEditor.setForeground(Color.BLUE); comboEditor.setFont(new Font("Tahoma", Font.BOLD, 11)); }

F

roger_rf:
fernandopaiva: acho que não é comum, mas é possível que o editor da ComboBox não seja um JTextField, então vale a pena fazer uma checagem de tipo:

if (meuJComboBox.getEditor().getEditorComponent() instanceof JTextField) { JTextField comboEditor = (JTextField)meuJComboBox.getEditor().getEditorComponent(); comboEditor.setForeground(Color.BLUE); comboEditor.setFont(new Font("Tahoma", Font.BOLD, 11)); }

Não é preciso uma verificação com if por exemplo, você pode instanciar o editor do JCombo a componentes de Edição, inclusive pode ate setar mascaras com instancias de JFormattedTextField. Tudo vai depender do cast para o qual vc deseja usa-lo.

veja.

JTextComponent txtComponent = (JTextComponent)meuJCombo.getEditor().getEditorComponent();
txtComponent.setText("mensagem do editor");

t+ e boa sorte.

R

Evidentemente, se você tiver absoluta certeza de que se trata de um JTextField (ou JTextComponent), o “if” não é necessário. O que importa é que nem sempre se pode supor que o editor de uma JComboBox é um JTextField ou um JTextComponent, a menos que você tenha definido isso explicitamente.

F

Obviamente, caso queira algo dinâmico, mas mesmo sendo dinâmico você pode usar uma maneira genérica que cabe para todos componentes de edição usando Componente e instanciando conforme necessita. Eu como sou bem underground e gosto de definir bem meus projetos e os tipos de componentes Swing a que vou usar em minhas modelagens UML, não fico voltado a if,else,else if caso não sejam necessários, até mesmo pq quanto mais if mais lento processamento e maior o tempo de resposta.
Ou você pretende testar JTextField,JTextArea,JFormattedTextField,JEditorPane,JList,JTextComponent,JTable,JCombo,JCheck um a um ??? kkk !! acho que não seria uma boa solução, pelo menos eu não usaria esta técnica como não uso.
Como disse no primeiro post, usando componentes de edição você fica menos fadado a erros para o editor do JComboBox :wink:

t+ e boa sorte.

M

tudo isso pra mudar a cor
por essas coisas fico de cara com o java
50 mil linhas pra mudar a cor da fonte
massssssssssss
agradeço a todos a ajuda

F

marcoscorso:
tudo isso pra mudar a cor
por essas coisas fico de cara com o java
50 mil linhas pra mudar a cor da fonte
massssssssssss
agradeço a todos a ajuda

Marcos, não existe 50 mil linhas, em apenas 2 linhas vc faz…veja.

JTextField comboEditor = (JTextField)meuJComboBox.getEditor().getEditorComponent();   
comboEditor.setForeground(Color.BLUE);  
//aqui vc pode colocar outras customizacoes como bem entender e sem ser necessario o uso de condicoes.

Java é muito simples, bem mais do que você imagina: Acessa o site: http://www.iguanasistemas.com.br, baixa o trial é um sistema 100% feito em Java.

t+ e boa sorte.

F

O Java é simples, algumas pessoas é que o complicam e até hoje não descobri pq…kkk !!! Um dia ainda descubro pq gostam de complicar.
Mas ta ae o exemplo, com apenas 2 linhas vc faz o que precisa.

t+ e boa sorte.

M

nao funcionou
pelo netbeans aparece a cor
na hora de executar fica cor preta

Criado 2 de fevereiro de 2012
Ultima resposta 6 de fev. de 2012
Respostas 10
Participantes 3