Pessoal e o seguinte com um pusta de um problema, criei uma JTable com duas colunas na primeira tenho a descricao do meu componente e na segunda tenho um JComboBox para o usuario selecionar entre 3 tipos(visivel, desabilitado, Controle Total) ai beleza agora vem o meu problema eu tenho um objeto igual a essa tabela. com a descricao de cada componente e a opcao inicial “controle total” eu quero q qdo eu mudar o item no JComboBox ele mude automaticamente no meu objeto tbm fiz o seguinte codigo para CRIAR A TABELA:
[code]
private void arrumarTabela(TelaComponentes componentesTela){
int totalComponentes = componentesTela.getTotalComponentes();
DefaultTableModel dtm = (DefaultTableModel) jtComponentes.getModel();
limparTabela();
for(int contador = 0; contador <totalComponentes; contador++){
Object linha[] = {componentesTela.getNmComponente(contador),componentesTela.getDsOpcaoComponente(contador)};
dtm.addRow(linha);
}
JComboBox jcbOpcoesComponentes = new JComboBox();
jcbOpcoesComponentes.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
atualizarObjeto();
}
});
TableColumn colunaOpcoes = jtComponentes.getColumnModel().getColumn(1);
jcbOpcoesComponentes.addItem("Controle Total");
jcbOpcoesComponentes.addItem("Desabilitado");
jcbOpcoesComponentes.addItem("Invisivel");
colunaOpcoes.setCellEditor(new DefaultCellEditor(jcbOpcoesComponentes));
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setToolTipText("Clique para selecionar outra opção");
colunaOpcoes.setCellRenderer(renderer);
jcbOpcoesComponentes.setName("cbOpcoesComponentes");
}[/code]
e o seguinte codigo para o ItemListener
private void atualizarObjeto(){
String nmTela = jcbTela.getSelectedItem().toString();
int indiceComponente = 0;
int indiceTabela = 0;
for (int contador = 0; contador < telaComponentes.length; contador++){
if(telaComponentes[contador].getNmTela().equals(nmTela)){
indiceComponente = contador;
}
}
indiceTabela = jtComponentes.getSelectedRow();
if(indiceTabela >=0){
telaComponentes[indiceComponente].alteraOpcaoComponente(indiceTabela,jtComponentes.getValueAt(indiceTabela,1).toString());
}
}
agora vem a descricao do problema:
para cada vez q eu clico no JComboBox ele executa o meu ItemListener 4 vezes nao sei o pq e outra ele so altera o conteudo do meu objeto se eu clicar sobre outra linha da minha tabela que tem um JCombobox eu utilizo o itemStateChanged parece q qdo ele entede qdo eu clico no JCombo, qdo eu clico no item e qdo ele sai do JCombo… meio complicado neh…
mas espero que alguem possa me ajudar URGENTE…
tks