Bom pessoal estou iniciando em JAVA recém aprendendo o básico de OO, bom estou criando um sistema básico de cadastro para médicos, pacientes, exames, consultas em uma pseudo-clinica, é um trabalho da facul não será um sistema funcional, logo não precisa de armazenamento persistente nem nada, mas eu gostaria de saber como poderia fazer para criar uma dependência entre as classes que eu vou cadastrar.. por exemplo, queria que não pudesse ser adicionado nenhum cadastro de paciente, se não houvesse nenhum médico cadastrado, e não pudesse ser cadastrado nenhum exame e nem consulta se não houvesse um médico e um paciente cadastrados entendem? Bom vou anexar os códigos que eu já implementei e desculpem algum erro estou começando a descobrir o mundo Java :D aguardo sugestões ^^
Janela do Médico:Janela do paciente:import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class janelaMedico extends JFrame implements ActionListener{ private JLabel nomeL, crmL, idadeL, especialL; private JTextField nome, crm, idade, especial; private JButton buttonOk, buttonExit; public void actionPerformed(ActionEvent e) { String comando = (String) e.getActionCommand(); if (comando.equals("SAIR")) { this.dispose(); System.exit(1); } if (comando.equals("OK")) { boolean nome = Exception.isNotNull(getNome()); boolean idade = Exception.isNumber(getIdade()); boolean crm = Exception.isNumber(getCrm()); boolean especialidade = Exception.isNotNull(getEspecial()); if (nome == false && idade == false && crm == false && especialidade == false){ JOptionPane.showMessageDialog(this,"Você deve cadastrar todos os dados","Resultado",JOptionPane.PLAIN_MESSAGE); } else{ if(nome==false){ JOptionPane.showMessageDialog(this,"Você deve cadastrar um nome!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(idade==false){ JOptionPane.showMessageDialog(this,"Idade deve conter somente números!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(crm==false){ JOptionPane.showMessageDialog(this,"CRM inválido!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(especialidade==false){ JOptionPane.showMessageDialog(this,"Especialidade não pode ser vazio!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(nome == true && idade == true && especialidade == true && crm==true){ JOptionPane.showMessageDialog(this,"Cadastro efetuado com sucesso!","Resultado",JOptionPane.PLAIN_MESSAGE); // System.exit(0); } } } } public janelaMedico(){ super ("Cadastro do Médico"); Container content = getContentPane(); content.setLayout(null); nomeL = new JLabel("Nome: "); nomeL.setBounds(new Rectangle(15, 20, 200, 20)); content.add(nomeL, null); setVisible(true); nome = new JTextField(); nome.setBounds(new Rectangle(70, 20, 270, 20)); content.add(nome, null); idadeL = new JLabel("Idade: "); idadeL.setBounds(new Rectangle(15, 60, 200, 20)); content.add(idadeL, null); setVisible(true); idade = new JTextField(); idade.setBounds(new Rectangle(70, 60, 200, 20)); content.add(idade, null); crmL = new JLabel("CRM: "); crmL.setBounds(new Rectangle(15, 100, 200, 20)); content.add(crmL, null); setVisible(true); crm = new JTextField(); crm.setBounds(new Rectangle(70, 100, 200, 20)); content.add(crm, null); especialL = new JLabel("Especialidade: "); especialL.setBounds(new Rectangle(15,140, 200,20)); content.add(especialL, null); setVisible(true); especial = new JTextField(); especial.setBounds(new Rectangle(135,140,200,20)); content.add(especial,null); buttonOk = new JButton("OK"); buttonOk.setBounds(new Rectangle(1, 450, 100, 25)); content.add(buttonOk, null); buttonOk.setActionCommand("OK"); buttonOk.addActionListener(this); buttonExit = new JButton("SAIR"); buttonExit.setBounds(new Rectangle(100,450, 100, 25)); content.add(buttonExit, null); buttonExit.addActionListener(this); setVisible(true); } public String getNome(){ return nome.getText(); } public String getEspecial(){ return especial.getText(); } public String getCrm(){ return crm.getText(); } public String getIdade(){ return idade.getText(); } }
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class janelaPaciente extends JFrame implements ActionListener{ private JLabel nomeP, idadeP, cpfP, sexoP; private JTextField nome, idade, cpf,sexo; private JButton buttonOk, buttonSair; public void actionPerformed(ActionEvent e) { String comando = (String) e.getActionCommand(); if (comando.equals("SAIR")) { this.dispose(); System.exit(1); } if (comando.equals("OK")) { boolean nome = Exception.isNotNull(getNomeP()); boolean idade = Exception.isNumber(getIdadeP()); boolean sexo = Exception.isNotNull(getSexoP()); boolean cpf = Exception.isNumber(getCpfP()); if (nome == false && idade == false && sexo == false && cpf == false){ JOptionPane.showMessageDialog(this,"Você deve cadastrar todos os dados","Resultado",JOptionPane.PLAIN_MESSAGE); } else{ if(nome==false){ JOptionPane.showMessageDialog(this,"Você deve cadastrar um nome!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(idade==false){ JOptionPane.showMessageDialog(this,"Idade deve conter somente números!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(sexo==false){ JOptionPane.showMessageDialog(this,"sexo inválido! ","Resultado",JOptionPane.PLAIN_MESSAGE); } if(cpf==false){ JOptionPane.showMessageDialog(this,"CPF inválido!","Resultado",JOptionPane.PLAIN_MESSAGE); } if(nome == true && idade == true && cpf == true && sexo==true){ JOptionPane.showMessageDialog(this,"Cadastro efetuado com sucesso!","Resultado",JOptionPane.PLAIN_MESSAGE); } } } } public janelaPaciente(){ super ("Cadastro Paciente"); Container content1 = getContentPane(); content1.setLayout(null); nomeP = new JLabel("Nome:"); nomeP.setBounds(new Rectangle(15,20,220,25)); content1.add(nomeP,null); setVisible(true); nome = new JTextField(); nome.setBounds(new Rectangle(70, 20, 200, 20)); content1.add(nome, null); idadeP = new JLabel("Idade: "); idadeP.setBounds(new Rectangle(15, 60, 200, 20)); content1.add(idadeP, null); setVisible(true); idade = new JTextField(); idade.setBounds(new Rectangle(70, 60, 200, 20)); content1.add(idade, null); cpfP = new JLabel("CPF: "); cpfP.setBounds(new Rectangle(15, 100, 200, 20)); content1.add(cpfP, null); setVisible(true); cpf = new JTextField(); cpf.setBounds(new Rectangle(70, 100, 200, 20)); content1.add(cpf, null); sexoP = new JLabel("Sexo: "); sexoP.setBounds(new Rectangle(15, 140, 200, 20)); content1.add(sexoP, null); setVisible(true); sexo = new JTextField(); sexo.setBounds(new Rectangle(70, 140, 200, 20)); content1.add(sexo, null); buttonOk = new JButton("OK"); buttonOk.setBounds(new Rectangle(1, 450, 100, 25)); content1.add(buttonOk, null); buttonOk.setActionCommand("OK"); buttonOk.addActionListener(this); buttonSair = new JButton("SAIR"); buttonSair.setBounds(new Rectangle(100,450, 100, 25)); content1.add(buttonSair, null); buttonSair.addActionListener(this); setVisible(true); } public String getNomeP(){ return nome.getText(); } public String getCpfP(){ return cpf.getText(); } public String getSexoP(){ return sexo.getText(); } public String getIdadeP(){ return idade.getText(); } }
Tratamento de Exceção:
E uma main que ainda vou implementar graficamente, mas antes quero descobrir como faço a classe paciente depender de um médico e assim implementar os outros requisitos, exame e consultas.. por enquanto ela só chama as outras janelas... [quote]public class Exception { public static boolean isNumber (String teste){ try{ Integer.parseInt(teste); return true; } catch(NumberFormatException e) { return false; } } public static boolean isNotNull (String teste){ try { teste.charAt(0); return true; } catch (NullPointerException e) { return false; } catch (StringIndexOutOfBoundsException e) { return false; } } }
public class Main {
public static void main (String[] args){
janelaMedico janela = new janelaMedico();
janela.setSize(800,600);
janelaPaciente janela2 = new janelaPaciente();
janela2.setSize(800,600);
}
}
[/quote]
Bom era isso.. acho que deixei bem detalhado o que eu pretendo fazer, esperando respostas :wink:
Vlew :) :)
