Olá pessoal, esse é meu primeiro tópico. Estou com um problema em um programa que estou desenvolvendo.
Tenho uma tela de cadastro de profissional, onde tenho um JComboBox com algumas funções, esse combobox está populado com as funções que estão cadastradas no banco de dados.
Ao lado do combo tenho um botão de pesquisa.
Quando clicko no botao de pesquisa ele me abre essa outra tela (JDialog) de consulta. Nessa tela quero que ao selecionar um item na tabela e clickar no botao selecionar, ele vá na tela anterior e sete a posição do combobox no item selecionado.
Esse é o código que tenho no botão selecionar, onde pego os valores da linha selecionada e uso para popular um objeto Funcao, em seguida chamo a a funcao selecionarFuncao() que está presente na miha TelaProfissional e passo como parâmetro o objeto função que acabei de setar.
Essa é minha função selcionarFuncao()

Onde eu recebo um objeto do tipo função e tento setar o item selecionado através do campo nome no objeto.
A questão é a seguinte, eu já verifiquei e realmente o objeto está sendo enviado de um JDialog para o outro corretamente, porém a função parece não disparar o comando .setSelectedItem() e não muda nada no combobox.
Testei colocar o botao selecionar na mesma tela do combobox e dai funciona.
Desde já agradeço, e desculpe se formatei algo errado no tópico, mas como disse é o meu primeiro.
abraços
Usando o setSelectedItem você só precisaria passar o objeto, sem apontar nenhuma propriedade dele, o fato de qual dado será exibido na comboBox depende da implementação sobrescrita do método toString na sua classe Funcao.
Exemplo:
jcFuncao.setSelectedItem(parametro);
Sim entendo, porém eu apontei a propriedade nome apenas por fins de teste. A questão é que parece que a função não esta sendo executada.
Mesmo eu utilizando :
jcFuncao.setSelectedItem(parametro);
Não acontece nada
Chegou a depurar sua aplicação para analisar a execução passo a passo?
Antes de selecionar a função você já tem a sua combo preenchida com todos os objetos?
Bom, descobri qual o problema, porém ainda não consegui resolver.
A questão é que quando eu clico no botão Selecionar, ele pega os valores, seta no objeto e chama a função na outra tela, até ai tudo ok. O problema é que eu acabo criando uma nova TelaProfissional:
TelaProfissional tp = new TelaProfissional(null, true);
tp.selecionarFuncao(f);
E acaba que a função que é acionada é nesta nova tela, e não na tela anterior que continua aberta.
A minha dúvida é como eu posso passar algum tipo de parâmetro da minha tela de cadastro de profissionais para a minha tela de consulta de funções, para que assim eu possa utilizar a TelaCadastroProfisisonal já aberta em vez de ter que instanciar novamente.
No caso, na hora de chamar o JDialog é necessário passar um frame e um boolean
public TelaCadProfissional(java.awt.Frame parent, boolean modal) {
Eu poderia passar algum parâmetro nessa hora ?
JDialog jd = new JDialog (null, true); - Por exemplo aqui.
Não sei se fui muito claro.
Mas obrigado desde já
Consegui resolver.
Mudei o meu método construtor da tela JDialog que contem o botao selecionar, junto com a busca. Coloquei para ela receber uma TelaCadProfissional como parâmetro.

Tive que mudar mais alguns campos ainda na tela de Consulta.
Dai então foi só passar a tela do cadastro de profissional como parâmetro na hora de chamar a tela de consulta, isso através do “this”.
E na tela de consulta onde eu chamo a função que troca o item do combo eu uso a tela que passei como parâmetro no lugar de instanciar uma nova.
Consegui resolver assistindo esse video:
Caso alguem tenha a mesma dúvida, recomendo que assista, tem passo a passo como resolver.
Vlw galera