Adicionar e Excluir

6 respostas
H

Bom estou eu aqui mais uma vez com essa porcaria de sistema que nunca fica pronto. No sistema tem meu cadastro de Médico, Paciente e Consulta. No sistema eu tenho que ter uma classe de Repositório onde contem os meus métodos, uma classe Controlador onde ficam minhas validações e minha Fachada.

Vou mostrar minha classe Médico.

package hospital.Medicos;

/**
 *
 * @author Giba
 */
public class Medico {

    private String codigo;
    private String nome;
    private String crm;

    /**
     * @return the codigo
     */
    public String getCodigo() {
        return codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the crm
     */
    public String getCrm() {
        return crm;
    }

    /**
     * @param crm the crm to set
     */
    public void setCrm(String crm) {
        this.crm = crm;
    }
    /**
     * @return the lista
     */
    /**
     * @param lista the lista to set
     */
}

Meu repositórioMedico.

package hospital.Medicos;

import java.util.ArrayList;

/**
 *
 * @author Giba
 */
public class RepositorioMedicoLista {

    ArrayList<Medico> listaMedico;

    public RepositorioMedicoLista() {
        this.listaMedico = new ArrayList<Medico>();
    }

    public void InserirMedico(Medico medico) {
        this.listaMedico.add(medico);
    }

    public void AlterarMedico(Medico medico) {
        for (int i = 0; i < this.listaMedico.size(); i++) {
            if (this.listaMedico.get(i).getCrm().equals(medico.getCrm())) {
                this.listaMedico.set(i, medico);
            }
        }
    }

    public void ExcluirMedico(Medico medico) {
        for (int i = 0; i < this.listaMedico.size(); i++) {
            if (this.listaMedico.get(i).getCrm().equals(medico.getCrm())) {
                this.listaMedico.remove(i);
            }
        }
    }

    public ArrayList<Medico> ListarMedico() {
        return listaMedico;
    }

    public Medico ConsultarMedico(Medico medico) {
        Medico medico1 = null;
        for (int i = 0; i < this.listaMedico.size(); i++) {
            if (this.listaMedico.get(i).getCrm().equals(medico.getCrm())) {
                medico1 = this.listaMedico.get(i);
            }
        }
        return medico1;
    }

    public void VerificarCrm(Medico medico) throws ExcecaoMedico {
        for (int i = 0; i < this.listaMedico.size(); i++) {
            if (this.listaMedico.get(i).getCrm().equals(medico.getCrm())) {
                throw new ExcecaoMedico("Já foi cadastrado um médico com esse CRM.");
            }
        }
    }
}

Meu controladorMedico.

package hospital.Medicos;

import java.util.ArrayList;

/**
 *
 * @author Giba
 */
public class ControladorMedico {

    private RepositorioMedicoLista repositorio;

    public ControladorMedico() {
        this.repositorio = new RepositorioMedicoLista();
    }

    public void InserirMedico(Medico medico) throws ExcecaoMedico {
        if (medico == null) {
            throw new ExcecaoMedico("Informar o médico");
        }
        if (medico.getNome() == null) {
            throw new ExcecaoMedico("Informar o código.");
        }

        if (medico.getCodigo().trim().equals("")) {
            throw new ExcecaoMedico("Informar o código.");
        }

        if (medico.getNome() == null) {
            throw new ExcecaoMedico("Informar o nome.");
        }

        if (medico.getNome().trim().equals("")) {
            throw new ExcecaoMedico("Informar o nome.");
        }

        if (medico.getCrm() == null) {
            throw new ExcecaoMedico("Informar o Crm.");
        }

        if (medico.getCrm().trim().equals("")) {
            throw new ExcecaoMedico("Informar o CRM.");
        }
        this.repositorio.VerificarCrm(medico);
        this.repositorio.InserirMedico(medico);
    }

    public void AlterarMedico(Medico medico) throws ExcecaoMedico {
        if (medico == null) {
            throw new ExcecaoMedico("Informar o médico");
        }
        if (medico.getNome() == null) {
            throw new ExcecaoMedico("Informar o código.");
        }

        if (medico.getCodigo().trim().equals("")) {
            throw new ExcecaoMedico("Informar o código.");
        }

        if (medico.getNome() == null) {
            throw new ExcecaoMedico("Informar o nome.");
        }

        if (medico.getNome().trim().equals("")) {
            throw new ExcecaoMedico("Informar o nome.");
        }

        if (medico.getCrm() == null) {
            throw new ExcecaoMedico("Informar o Crm.");
        }

        if (medico.getCrm().trim().equals("")) {
            throw new ExcecaoMedico("Informar o CRM.");
        }

        this.repositorio.AlterarMedico(medico);
    }

    public void ExcluirMedico(Medico medico) {
        this.repositorio.ExcluirMedico(medico);
    }

    public ArrayList<Medico> ListarMedico() {
        return this.repositorio.ListarMedico();
    }

    public Medico ConsultarMedico(Medico medico) {
        return this.repositorio.ConsultarMedico(medico);
    }
}

E agora a minha classe Consulta.

package hospital.Consultas;

import hospital.Medicos.Medico;
import hospital.Pacientes.Paciente;

/**
 *
 * @author Giba
 */
public class Consulta {

    private String codigo;
    private String dataconsulta;
    private String horaconsulta;
    private String datamarc;
    private String horamarc;
    private String primeiravez;
    private Paciente paciente;
    private Medico medico;

    /**
     * @return the codigo
     */
    public String getCodigo() {
        return codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the dataconsulta
     */
    public String getDataconsulta() {
        return dataconsulta;
    }

    /**
     * @param dataconsulta the dataconsulta to set
     */
    public void setDataconsulta(String dataconsulta) {
        this.dataconsulta = dataconsulta;
    }

    /**
     * @return the horaconsulta
     */
    public String getHoraconsulta() {
        return horaconsulta;
    }

    /**
     * @param horaconsulta the horaconsulta to set
     */
    public void setHoraconsulta(String horaconsulta) {
        this.horaconsulta = horaconsulta;
    }

    /**
     * @return the datamarc
     */
    public String getDatamarc() {
        return datamarc;
    }

    /**
     * @param datamarc the datamarc to set
     */
    public void setDatamarc(String datamarc) {
        this.datamarc = datamarc;
    }

    /**
     * @return the horamarc
     */
    public String getHoramarc() {
        return horamarc;
    }

    /**
     * @param horamarc the horamarc to set
     */
    public void setHoramarc(String horamarc) {
        this.horamarc = horamarc;
    }

    /**
     * @return the primeiravez
     */
    public String getPrimeiravez() {
        return primeiravez;
    }

    /**
     * @param primeiravez the primeiravez to set
     */
    public void setPrimeiravez(String primeiravez) {
        this.primeiravez = primeiravez;
    }

    /**
     * @return the paciente
     */
    public Paciente getPaciente() {
        return paciente;
    }

    /**
     * @param paciente the paciente to set
     */
    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }

    /**
     * @return the medico
     */
    public Medico getMedico() {
        return medico;
    }

    /**
     * @param medico the medico to set
     */
    public void setMedico(Medico medico) {
        this.medico = medico;
    }
}

O Repositorio e Controlador segue a mesma ideia do Médico então nem vou colocar pra não ficar um monte de código. Até ai ta tudo beleza. Eu posso inserir, excluir, consultar, listar e alterar. Tudo funcionando muito bem. O problema é que se eu inserir um Médico e esse Médico estiver ligado a Minha consulta eu não posso mais excluir ele. Só que eu não sei como eu faria isso.

Essa é minha tela (JDialog) de cadastro Médico.

package hospital;

import hospital.Medicos.ExcecaoMedico;
import hospital.Medicos.Medico;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 *
 * @author tarde
 */
public class FormCadastroMedico extends javax.swing.JDialog {

    Fachada fachada;
    Medico medico;

    /** Creates new form FormCadastroMedico */
    public FormCadastroMedico(java.awt.Frame parent, boolean modal, Fachada fachada) {
        super(parent, modal);
        initComponents();
        this.fachada = fachada;
    }

    private FormCadastroMedico(JFrame jFrame, boolean b) {
        super(jFrame, b);
        initComponents();
    }

    FormCadastroMedico(Fachada fachada, Medico medico) {
        initComponents();
        this.fachada = fachada;
        this.medico = medico;
        campoNome.setText(this.medico.getNome());
        campoCodigo.setText(this.medico.getCodigo());
        campoCrm.setText(this.medico.getCrm());
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        campoNome = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        campoCodigo = new javax.swing.JTextField();
        campoCrm = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        BotaoGravar = new javax.swing.JButton();
        BotaoVoltar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Cadastro do Médico");
        setBackground(new java.awt.Color(224, 223, 227));
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Dados do Médico:"));

        jLabel1.setText("Nome:");

        jLabel2.setText("Código:");

        jLabel3.setText("CRM");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)
                        .addComponent(campoNome, javax.swing.GroupLayout.PREFERRED_SIZE, 325, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3))
                        .addGap(28, 28, 28)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(campoCrm)
                            .addComponent(campoCodigo, javax.swing.GroupLayout.DEFAULT_SIZE, 96, Short.MAX_VALUE))))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(campoNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(campoCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(campoCrm, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Cadastro:"));

        BotaoGravar.setText("Gravar");
        BotaoGravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotaoGravarActionPerformed(evt);
            }
        });

        BotaoVoltar.setText("Voltar");
        BotaoVoltar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotaoVoltarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addComponent(BotaoGravar)
                .addGap(32, 32, 32)
                .addComponent(BotaoVoltar))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(BotaoGravar)
                    .addComponent(BotaoVoltar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void BotaoGravarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        Medico adicionar = new Medico();
        adicionar.setNome(this.campoNome.getText());
        adicionar.setCodigo(this.campoCodigo.getText());
        adicionar.setCrm(this.campoCrm.getText());
        try {
            fachada.inserirMedico(adicionar);
            JOptionPane.showMessageDialog(this, "Médico cadastrado com sucesso.");
        } catch (ExcecaoMedico ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }
        campoNome.setText(null);
        campoCodigo.setText(null);
        campoCrm.setText(null);
    }                                           

    private void BotaoVoltarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        setVisible(false);
    }

E a outra dúvida é na hora de cadastrar minha consulta.

package hospital;

import hospital.Consultas.Consulta;
import hospital.Consultas.ExcecaoConsulta;
import hospital.Medicos.Medico;
import hospital.Pacientes.Paciente;
import java.util.ArrayList;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;

/**
 *
 * @author Giba
 */
public class FormCadastroConsulta extends javax.swing.JFrame {

    ArrayList<Paciente> listarPaciente;
    ArrayList<Medico> listarMedico;
    Fachada fachada;

    /** Creates new form FormCadastroConsulta */
    private FormCadastroConsulta() {
        initComponents();
    }

    public FormCadastroConsulta(Fachada fachada) {
        initComponents();
        this.fachada = fachada;
        this.Carregar();

    }

    public void Carregar() {
        listarPaciente = fachada.ListarPaciente();
        String[] lista = new String[listarPaciente.size()];
        DefaultComboBoxModel modelo = new DefaultComboBoxModel();

        for (int i = 0; i < listarPaciente.size(); i++) {
            lista[i] = "Nome: " + listarPaciente.get(i).getNome() + ", " + " Código: " + listarPaciente.get(i).getCodigo() + ", " + "Data de nascimento: " + listarPaciente.get(i).getDatanasci() + ", " + " Cpf: " + listarPaciente.get(i).getCpf() + ", " + " Telefone: " + listarPaciente.get(i).getTelefone() + ", " + " Sexo: " + listarPaciente.get(i).getSexo() + ".";
            modelo.addElement(lista[i]);
        }
        ComboBoxPaciente.setModel(modelo);
        //fazer aqui o carregamento dos medicos
        listarMedico = fachada.ListarMedico();
        lista = new String[listarMedico.size()];
        modelo = new DefaultComboBoxModel();
        for (int i = 0; i < listarMedico.size(); i++) {
            lista[i] = "Nome: " + listarMedico.get(i).getNome() + ", " + " Código: " + listarMedico.get(i).getCodigo() + ", " + "CRM: " + listarMedico.get(i).getCrm() + ".";
            modelo.addElement(lista[i]);
        }
        ComboBoxMedico.setModel(modelo);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        campoCodigo = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        campoDataconsulta = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        campoHoraconsulta = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        campoDatamarc = new javax.swing.JTextField();
        campoHoramarc = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        ComboPrimeiravez = new javax.swing.JComboBox();
        jLabel7 = new javax.swing.JLabel();
        ComboBoxPaciente = new javax.swing.JComboBox();
        jLabel8 = new javax.swing.JLabel();
        ComboBoxMedico = new javax.swing.JComboBox();
        jPanel2 = new javax.swing.JPanel();
        BotaoGravar = new javax.swing.JButton();
        BotaoVoltar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Dados da Consulta"));

        jLabel1.setText("Código:");

        jLabel2.setText("Data da consulta:");

        jLabel3.setText("Hora da consulta:");

        jLabel4.setText("Data da marcação:");

        jLabel5.setText("Hora da marcação:");

        jLabel6.setText("Primeira vez:");

        ComboPrimeiravez.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sim", "Não" }));

        jLabel7.setText("Médico:");

        jLabel8.setText("Paciente:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .addComponent(jLabel1)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(campoCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jLabel2)
                                .addComponent(jLabel3)
                                .addComponent(jLabel7))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(campoDataconsulta, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(ComboPrimeiravez, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                            .addComponent(campoHoraconsulta, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addGap(39, 39, 39)
                                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                            .addComponent(jLabel4)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(campoDatamarc, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                            .addComponent(jLabel5)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(campoHoramarc, javax.swing.GroupLayout.DEFAULT_SIZE, 12, Short.MAX_VALUE))))
                                .addComponent(ComboBoxMedico, 0, 350, Short.MAX_VALUE))))
                    .addComponent(jLabel6)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel8)
                        .addGap(44, 44, 44)
                        .addComponent(ComboBoxPaciente, 0, 350, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel1)
                            .addComponent(campoCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(campoDataconsulta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel3)
                            .addComponent(campoHoraconsulta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel6)
                            .addComponent(ComboPrimeiravez, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(35, 35, 35)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel4)
                            .addComponent(campoDatamarc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel5)
                            .addComponent(campoHoramarc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel8))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(ComboBoxMedico, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(ComboBoxPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(20, Short.MAX_VALUE))
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Cadastro"));

        BotaoGravar.setText("Gravar");
        BotaoGravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotaoGravarActionPerformed(evt);
            }
        });

        BotaoVoltar.setText("Voltar");

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(BotaoGravar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(BotaoVoltar)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(BotaoGravar)
                    .addComponent(BotaoVoltar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void BotaoGravarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        Consulta add = new Consulta();
        add.setCodigo(this.campoCodigo.getText());
        add.setDataconsulta(this.campoDataconsulta.getText());
        add.setHoraconsulta(this.campoHoraconsulta.getText());
        add.setDatamarc(this.campoDatamarc.getText());
        add.setHoramarc(this.campoHoramarc.getText());
        add.setPrimeiravez((String) ComboPrimeiravez.getSelectedItem());
        add.setMedico((Medico) ComboBoxMedico.getSelectedItem());
        add.setPaciente((Paciente) ComboBoxPaciente.getSelectedItem());
        try {
            fachada.InserirConsulta(add);
            JOptionPane.showMessageDialog(this, "Consulta cadastrada com sucesso.");
        } catch (ExcecaoConsulta ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }
    }

Eu tenho meus campos e 3 combobox. Só que em 2 dos combobox ao abrir o meu formulário de cadastroConsulta já vem carregado os Médicos e Pacientes cadastrados para eu cadastrar na minha consulta. Só que eu não tou conseguindo fazer esse infeliz aparecer na minha lista para que eu possa fazer minha consulta.

Vou mostrar meu botão de consulta Médico.

private void BotaoListarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        if (!campoCrm.getText().trim().equals("")) {
            medico.setCrm(campoCrm.getText());
            medico = fachada.ConsultarMedico(medico);
            String[] s = new String[1];
            s[0] = "Nome:" + " " + medico.getNome() + ", " + "Código:" + " " + medico.getCodigo() + ", " + "Crm:" + " " + medico.getCrm() + ".";
            lista.setListData(s);
        } else {

            listar = fachada.ListarMedico();
            String[] s = new String[listar.size()];
            lista.setListData(s);
            for (int i = 0; i < listar.size(); i++) {
                s[i] = "Nome: " + listar.get(i).getNome() + ", " + " Código: " + listar.get(i).getCodigo() + ", " + "CRM: " + listar.get(i).getCrm() + ".";

            }
            lista.setListData(s);
        }
    }

6 Respostas

Vinny

Em relação a exclusão de médico
antes de exclui-lo faz uma consulta para
ver se o codigo desse médico não esta na
tabela da sua consulta
se estiver exibe uma mensagem
falando que não pode excluir esse
médico pq ele ja tem consultas
registradas!

ViniGodoy

Você deverá primeiro excluir as consultas do médico.

Entretanto, pense com carinho se isso é realmente uma boa. Imagine um consultório, que já teve um médico, que já atendeu um dia pacientes. Um belo dia ele vai embora, e você apaga todos os dados desse médico. Se um paciente voltar a clinica reclamando, você não terá sequer como verificar quem o atendeu.

Então, via de regra, não exclua o médico. Dê uma mensagem de erro.
Ou faça uma exclusão lógica. Ou seja, adicione uma variável no médico chamada “excluído” e, caso o médico tenha consultas, marque ela como true e salve. Aí, nos seus métodos de busca, não inclua médicos marcados com esse flag, a menos que seja explicitamente solicitado.

G

Olá,

Para resolver seu problema é muito simples, apenas desvincule a fk da tabela de médico com a tabela de consultas.

Att, Gaspar Barancelli Junior.

ViniGodoy

Mas isso irá gerar uma série de outros problemas. Como a possibilidade de criar uma consulta sem um médico. Além disso, o que acontecerá com as consultas existentes? Como serão listadas?
Esse é o tipo de solução que só tapa o sol com a peneira.

renamed

grinche:
Olá,

Para resolver seu problema é muito simples, apenas desvincule a fk da tabela de médico com a tabela de consultas.

Att, Gaspar Barancelli Junior.

Isso não resolve nada… só cria problemas…

Primeiro, vc não conseguira tirar a FK se já tiver alguma consulta vinculada a algum médico segundo que vc joga seu sistema por água abaixo…

H

Vou postar o program aqui para vocês poderem analizar melhor.

Criado 4 de dezembro de 2009
Ultima resposta 5 de dez. de 2009
Respostas 6
Participantes 5