Recuperar ComboBox em JTable

2 respostas
C

Boa noite!

Estou tendo um problema aqui ao recuperar os ComboBox que estão em uma JTable.

Tenho duas colunas da JTable com ComboBoxes. Uma para estado e outra para cidade.

Quando a coluna de Estado é alterada ( valor do ComboBox alterado ), a coluna de cidades também precisa ser alterada.

Para tentar resolver isso, adicionei um ActionListener no ComboBox de Estados, entretanto, não estou conseguindo acessar o ComboBox de Cidades, que está na outra coluna da Jtable.

Um pouco do código:

TableColumn colunaEstado = tabela.getColumnModel().getColumn( 4 );
            javax.swing.JComboBox comboEstados = new javax.swing.JComboBox( new Dados.Estado().listar() );
            colunaEstado.setCellEditor( new DefaultCellEditor( comboEstados ) );
            comboEstados.addActionListener( new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                   preencheComboCidadesTabela();
                }

            });

.
.
.

private void preencheComboCidadesTabela()
    {
       if( jTable1.getEditingRow() < 0 )
       {
           return;
       }
       TableColumn colunaCidade = jTable1.getColumnModel().getColumn( 3 );
       colunaCidade.setCellEditor( new DefaultCellEditor( 
               new javax.swing.JComboBox( new Dados.Cidade().listar( new EstadoDAO().consultar( jTable1.getValueAt( jTable1.getEditingRow(), 4 ).toString() ) ) ) ) );
    }

Implementei desse jeito, pegando o valor que está na célula da JTable, na coluna de estados. Entretanto, queria conseguir acessar novamente o comboBox que foi passado para o CellEditor e pegar o seu item selecionado…

Desde já agradeço!

2 Respostas

C
Component estadoCombo = jTable1.getCellEditor().getTableCellEditorComponent( jTable1, "", true,
              jTable1.getSelectedRow(), 4 );
 String estado = ( ( JComboBox ) estadoCombo ).getSelectedItem().toString();

Resolvido!

D

Estou com uma dúvida com respeito a colocar um jcombobox no jtable isso pq no meu caso esse combo vai ser preenchido com dados do banco de dados. Como terei que proceder eu ja faço isso normal com combo carregando direto do banco mas colocalo no jtable carregando do banco eu naum sei por onde começar!

Criado 22 de abril de 2008
Ultima resposta 4 de nov. de 2008
Respostas 2
Participantes 2