Atualizando JTextField apartir de uma combobox

3 respostas
marcos.menezes

Caros amigos tenho uma implementação onde busco do banco as informações da combo porém ao selecionar o item da combobox preciso atualizar um campo textfield automaticamente na mesma tela apresentado o nome do codigo selecionado.
alguém possui um exemplo ou sabe como fazer isso?

3 Respostas

The_Punisher

E ai cara blz.

Bem, nesse caso procure algo como change listener aqui no fórum mesmo deve ter alguma coisa a respeito, ou se esiver usando netbeans clique com o botão direito em cima do combo e escolha Events => Item => itemStateChanged

ele abrirá um método onde vc pode fazer a seguinte verificação…

if(combo.getSelectedIndex()==0){
   texto.setText(combo.getSelectedItem().toString());
}
else if(combo.getSelectedIndex()==1){
   texto.setText(combo.getSelectedItem().toString());
}

e assim por diante.

Espero ter ajudado e qualquer coisa posta ai.

marcos.menezes

E ai cara, vlw pela ajuda mas ainda nao consegui implementar.

A situacao é a seguinte:

Em uma JComboBox eu to pegando os codigos no banco referente a uma classe.
A medida que eu for escolhendo no JComboBox eu queria que automaticamente exibi-se na JTextField o Nome associado ao codigo.
Esse codigo e o nome estão cadastrados no banco.

Estou usando programacao em 3 camadas.. por isso a dificuldade..

DAOPaciente daoPac = new DAOPaciente();
ArrayList P = daoPac.consultarTodos();
	
for(int i=0;i<P.size();i++)
{
            Paciente pc = (Paciente) P.get(i);
            comboP.addItem(pc.getNome());	
				
            pc = daoPac.consultar(pc);
					
            if(comboP.getSelectedIndex()== 0)
            {				
                         tfpaciente.setText(comboP.getSelectedItem().toString());
            }						
            else if(comboP.getSelectedIndex()==1)
            {
	         tfpaciente.setText(comboP.getSelectedItem().toString());
            }
}

Dessa forma que está ele so busca a posicao 1, e nao exibe as outras.

Obrigado pela ajuda !!

The_Punisher

e cara tranquilão,

Pelo que vi no laço que vc criou para atribuir os itens no combo, vc só está atribuindo os itens e não os índices.

for(int i=0;i<P.size();i++)  
{  
             Paciente pc = (Paciente) P.get(i);  
             comboP.addItem(pc.getNome());     
                   
             pc = daoPac.consultar(pc);  
                       
             if(comboP.getSelectedIndex()== 0)  
             {                 
                          tfpaciente.setText(comboP.getSelectedItem().toString());  
             }                         
             else if(comboP.getSelectedIndex()==1)  
             {  
              tfpaciente.setText(comboP.getSelectedItem().toString());  
             }  
}

e vc me disse que ele está buscando sempre a primeira posição, ou seja, não percorre a lista correto?

não será alguma coisa como:

for(int i=0;i<P.size();i++)  
{  
             Paciente pc = (Paciente) P.get(i);
             
             comboP.addIndex(pc.getValor()); //atribuir o indice na lista  
             comboP.addItem(pc.getNome());     
                   
             pc = daoPac.consultar(pc);  
                       
             if(comboP.getSelectedIndex()== i)  
             {                 
                          tfpaciente.setText(comboP.getSelectedItem().toString());  
             }                         
             /*else if(comboP.getSelectedIndex()==1)  
             {  
              tfpaciente.setText(comboP.getSelectedItem().toString());  
             } */ 
}

ou será que ele gera os indices automaticamente à medida em que forem sendo atribuídos os itens?

não sei se existe mesmo essa sintaxe que descrevi no codigo acima, mas é uma idéia.

se eu estiver errado por favor me corrija, pois nunca trabalhei com desenvolvimento três camadas.

qualquer coisa estamos aí blz?

flw abrax

Criado 12 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 3
Participantes 2