A dúvida é a seguinte, um evento para disparar quando um texto for inserido no Text-Field,
no meu caso, o combo-box é carregado com os dados do banco no open-windows assim que o formulário é aberto,
dai tenho um campo código que corresponde aos valores do combo-box, dai preciso fazer a ligação tipo; se o código carregado for 2 ele vai no combo-box e seleciona o item correspondente.
no formulário para inserir eu fiz o seguinte:
[code]
private void funcaoActionPerformed(java.awt.event.ActionEvent evt) { //evento
if (funcao.isPopupVisible()){ //se o valor do checkbox for selecionado
Funcao carregando;//Class modelo
ArrayList<Funcao> resultado;
int i;
String troca , nome1 = "";
ControleCurriculum controle = new ControleCurriculum();
resultado = controle.buscarFuncao(nome1);
i = funcao.getSelectedIndex() ;
carregando = resultado.get(i);
troca = "";
troca = troca + carregando.getCod();//guardando o valor do código
codFuncao.setText(troca);//exibindo o código
Você pode colocar o código da mudança do combobox na onfocuslost da textfield…
Ou pode colocar esse código quando o usuário apertar enter, após preencher a textfield
[code]txt.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent arg0) {
} @Override
public void keyReleased(KeyEvent arg0) {
if (arg0.getKeyCode() != KeyEvent.VK_ENTER) {
trocarCombobox();
}
}
@Override
public void keyPressed(KeyEvent arg0) {
}
});
txt.addFocusListener(new FocusListener() {
public void focusLost(FocusEvent arg0) {
trocarCombobox();
}
public void focusGained(FocusEvent arg0) {
}
});
obrigado pela atenção sapaos, olha com o onfocuslost não daria certo, porque, não é na parte de inserção que to trabalhando e sim no retorno das informações do banco; então meu campo código vai ser preenchido pelo banco de dados e quando isso acontecer quero que ele pegue o valor de outra tabela do banco que tem o nome desse código para ser colocado em um combobox… fico no aguardo…
ArrayList<Funcao>resultado;
String troca , nome1 = "";
int i;
ControleCurriculum controle = new ControleCurriculum();
resultado = controle.buscarFuncao(nome1); //carrega os nomes
i = Integer.parseInt(codFuncao.getText()); //captura o código preenchido
funcaoo = resultado.get(i);
troca = "";
troca = troca + funcaoo.getFuncao();
funcao.setSelectedItem(troca);//setando o valor no COMBOBOX
}[/code]
O problema é esse erro:
Exception in thread “AWT-EventQueue-0” java.lang.IndexOutOfBoundsException: Index: 8, Size: 3
esse Index: 8 é a posição do array que eu to montando com o código,
e o tamanho 3 é pq só tem 3 itens no array, dai não sei como corrigir o erro mim ajudem ai,
o problema é esse, eu não to conseguindo pensar como comparar, porque o meu combobox é carregado com Strings que vem do BD, de uma tabela, e quando o formulario é aberto o evento (open windows) do formulário carrega o textfield que é o “codFuncao”, dai tenho que fazer o sincronismo. exemplo: a tabela que carrega o combobox possui funcao que é o que uso para carregar o combo, e tem o codFuncao correspondente a funcao, só que eu não uso o codFuncao da tabela funcao, e sim o codFuncao de outra tabela que faz referencia a tabela de funções, dai essa outra tabela é que vai carregar meu campo codFuncao… quando for carregado eu quero que ele selecione o correspondente na combobox de acordo o codFuncao; ai finalizando tenho: um TextField que tem que selecionar um combobox,
realmente ficou meio confuso… tenta postar seu código completo…
Não to entendendo direito a relação do seu banco e da sua tela…
posta o código de tudo e dou uma olhada…