Tenho a seguinte questão: em um JTable editável, a edição de algumas colunas é feita por meio de um JCombo. Quando o usuário iniciar a edição (digitando algo) na célula de uma coluna com JCombo é necessário que o item correspondente aos primerios caracteres digitados seja selecionado no JCompo.
Percebi que o JCombo já possui esta funcionalidade porém, adicionado no JTable parece que os eventos do JTable são executados, sobrepondo os eventos do JCombo.
Exemplo:
Temos os seguintes itens no JCombo:
Arquitetura
Coordenação
Elétrica
Instrumentação
Quando o usuário digitar, com o foco em uma célula de disciplina da grade, a letra “e”, o item Elétrica deve ser selecionado.
Outra coisa, ao clicar na célula o item no JCombo, correspondente ao valor na célula, deve ser selecionado.
Veja, abaixo, como estou inserindo os JCombos no JTable:
TableColumn colunaDisciplina = this.jtblListaDocumentos.getColumn("Disciplina");
TableColumn colunaItemEstimativa = this.jtblListaDocumentos.getColumn("Item Estimativa");
TableColumn colunaFormato = this.jtblListaDocumentos.getColumn("Formato");
TableColumn colunaCategoriaProfissional = this.jtblDocumento_ListaEstimativas.getColumn("Categoria Profissional");
JComboBox jcboColunaDisciplina = new JComboBox();
JComboBox jcboColunaItemEstimativa = new JComboBox();
JComboBox jcboColunaFormato = new JComboBox();
JComboBox jcboColunaCategoriaProfissional = new JComboBox();
if (propostaSelecionada != null && propostaSelecionada.estaPersistido()){
try {
popularJComboBox(jcboColunaDisciplina,(ArrayList) getControlador().getDisciplinasDaProposta(propostaSelecionada));
popularJComboBox(jcboColunaItemEstimativa,(ArrayList) getControlador().getItensEstimativaDaProposta(propostaSelecionada));
popularJComboBox(jcboColunaFormato,(ArrayList) getControlador().getFormatos());
popularJComboBox(jcboColunaCategoriaProfissional,(ArrayList) getControlador().getCategoriasProfissionaisDaProposta(propostaSelecionada));
} catch (ErroECM ex) {
UIHelper.ShowMessageInformation(ex.getMessage());
}
}
colunaDisciplina.setCellEditor(new DefaultCellEditor(jcboColunaDisciplina));
colunaItemEstimativa.setCellEditor(new DefaultCellEditor(jcboColunaItemEstimativa));
colunaFormato.setCellEditor(new DefaultCellEditor(jcboColunaFormato));
colunaCategoriaProfissional.setCellEditor(new DefaultCellEditor(jcboColunaCategoriaProfissional));
Desde já agradeço a atenção.