Campo preenchido com ID de um JComboBox de um JTable

1 resposta
jtableswingjava
P

Preciso de ajuda para incluir um valor na coluna ID quando na coluna do lado NOME selecionar um determinado item (Medicamento).

Consigo fazer os itens aparecerem com o combo mas quando seleciono o medicamento não sei como colocar o ID dele nessa coluna ID.

inserir a descrição da imagem aqui

private void initTableReceita() throws ClassNotFoundException, SQLException{
            DefaultTableModel dftm = (DefaultTableModel) tabelaMedicamentos.getModel();
            
            arrayDosagem = new String[]{ Medicamento.ViaAdministracao.INTRAMUSCULAR.name(),
            Medicamento.ViaAdministracao.ORAL.name(),
            Medicamento.ViaAdministracao.SUBLINGUAL.name(),
            Medicamento.ViaAdministracao.VENOSA.name()};
            
            arrayViaAdministracao = new String[]{ Medicamento.ViaAdministracao.INTRAMUSCULAR.name(),
            Medicamento.ViaAdministracao.ORAL.name(),
            Medicamento.ViaAdministracao.SUBLINGUAL.name(),
            Medicamento.ViaAdministracao.VENOSA.name()};
            
            //-----------------------------------------------------------------
            MedicamentoDAO medicamentoDAO = new MedicamentoDAO();
            ArrayList<Medicamento> listaMedicamento = medicamentoDAO.buscarTodos();
            String[] arrayMedicamento = new String[listaMedicamento.size()];
            
            for(int i = 0; i< listaMedicamento.size(); i++){
                arrayMedicamento[i] = listaMedicamento.get(i).getNome();
            }
           
            
            comboBoxMedicamento = new JComboBox<>(arrayMedicamento);        
            TableColumn colunaNomeMedicamento = tabelaMedicamentos.getColumnModel().getColumn(1); 
            colunaNomeMedicamento.setCellEditor(new DefaultCellEditor(comboBoxMedicamento)); 
            
            comboBoxMedicamento.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    Medicamento medicamento = (Medicamento)comboBoxMedicamento.getSelectedItem();
                    dftm.addRow(new Integer[]{medicamento.getId()});
                }
            });
            
            
            //Medicamento selecionado na coluna do lado 'Nome' do medicamento
            //-----------------------------------------------------------------
            
            comboBoxViaAdmin = new JComboBox<>(arrayViaAdministracao);
            //String tipoUsuario = jComboBox1.getSelectedItem().toString();         
            
            TableColumn colunaViaAdministracao = tabelaMedicamentos.getColumnModel().getColumn(3);              
                   
            colunaViaAdministracao.setCellEditor(new DefaultCellEditor(comboBoxViaAdmin));        
        }

1 Resposta

darlan_machado

Se usar um table model customizado, fica mais fácil.

Criado 26 de junho de 2018
Ultima resposta 26 de jun. de 2018
Respostas 1
Participantes 2