Me estoy volviendo loco. Ya no se que más mirar ni donde buscar.
Estoy haciendo una especie de programa de gestión de un hospital para estudiar y he creado una clase Persona la cual es padre de la Clase Paciente y Empleado.
En la clase Persona he colocado los atributos nombre, dni, telefono etc . Todos ellos con sus metodos get y set, asi como algunos metodos de validacion (dni correcto, telefonio corecto, 2 apellidos ) que los llamo antes de definir los atributos del objeto ( o sea, antes de igualar this.x = x en el metodo set de cada atributo )
luego para trabajar con herencias, la clase paciente y la clase empleado tienen sus propios atributos con sus metodos get y set y sus metodos de validacion.
El problema viene en la clase paciente. He creado los atributos enfermedad, tipoEnfermedad y tratamiento. La idea era que solo existiesen 4 tipos de enfermedades, A B C Y D, y dependiendo de una enfermedad un tratamiento podria ser valido o no. Me explico, si la enfermedad es tipo A solo podrá ser valido reposo o dieta blanda, si es tipo B solo aspirina o jarabe ...
Las clases me funcionan bien, he creado un panel de pruebas y perfecto, me funcionan todos los metodos. El problema viene cuando en otra ventana pretendo crear objetos en tiempo real.
he creado unos text a los cuales les introduzco los parametros que deseo y tras pulsar un boton creo los objetos. pues los atributos heredados de persona se introducen perfectamente (o no, dependiendo de si son validos o no ), pero los de la clase paciente, solo se introduce bien el primero (enfermedad), y tipoEnfermedad y tratamiendo no se introducen bien.
La putada es que si borro el textTipoEnfermedad.getText() y añado "A " (o sea, borro el metodo del text donde recojo lo escrito por el usuario y le doy un valor fijo), si que me funciona bien.
¿ Alguien me ha entendido? ¿ Alguien tiene una mínima idea de que puede suceder?
os pongo la clase paciente
Código Javascript
:
Ver originalpackage UsuariosHospital;
public class Paciente extends Persona {
private String enfermedad;
private String tipoEnfermedad;
private String tratamiento;
public Paciente (String nombre, String apellidos, String dni, String tfno, String direccion, String email , String enfermedad,
String tipoEnfermedad , String tratamiento)
{
super(nombre, apellidos, dni, tfno, direccion, email);
setEnfermedad(enfermedad);
setTipoEnfermedad(tipoEnfermedad);
setMedicacion(tratamiento,tipoEnfermedad);
}
public void setEnfermedad (String enfermedad)
{
if (validarEnfermedad(enfermedad))
this.enfermedad = enfermedad;
else
this.enfermedad = "¡¡Enfermedad no valida!!";
}
public void setTipoEnfermedad(String tipoEnfermedad)
{
if (validarTipoEnfermedad(tipoEnfermedad))
this.tipoEnfermedad = tipoEnfermedad;
else
this.tipoEnfermedad ="¡¡Tipo enfermedad no valida!!";
}
// introducimos 2 valores al metodo validarMedicacion ya que nos hace falta conocer el tipo de enfermedad para poder medicar con criterio
public void setMedicacion (String tratamiento, String tipoEnfermedad)
{
if(validarTratamiento(tratamiento ,tipoEnfermedad)== 1)
this.tratamiento = tratamiento;
else
this.tratamiento ="¡¡ Medicacion no valida !!";
}
public String getEnfermedad ()
{
return this.enfermedad;
}
public String getTipoEnfermedad ()
{
return this.tipoEnfermedad;
}
public String getMedicacion()
{
return this.tratamiento;
}
public String getPaciente()
{
return super.getPersona() + " \n"+ this.enfermedad + " "+ this.tipoEnfermedad +" " + this.tratamiento;
}
// metodos de la clase paciente
//--------------------------------------------------------------------------------------------------------------------------
private Boolean validarEnfermedad (String enfermedad)
{
if (enfermedad.length() <= 2)
return false;
return true;
}
private Boolean validarTipoEnfermedad (String tipoEnfermedad)
{
if(tipoEnfermedad =="A" || tipoEnfermedad =="a")
return true;
if(tipoEnfermedad =="B" || tipoEnfermedad =="b")
return true;
if(tipoEnfermedad =="C" || tipoEnfermedad =="c")
return true;
if(tipoEnfermedad =="D" || tipoEnfermedad =="d")
return true;
return false;
}
private int validarTratamiento (String tratamiento, String tipoEnfermedad)
{
int result = 0;
if ((tipoEnfermedad == "A" || tipoEnfermedad == "a") && (tratamiento == "reposo" || tratamiento == "dieta blanda"))
result =1;
if ((tipoEnfermedad == "B" || tipoEnfermedad == "b") && (tratamiento == "aspirina" || tratamiento == "jarabe"))
result =1;
if ((tipoEnfermedad == "C" || tipoEnfermedad == "c") && (tratamiento == "calmantes" || tratamiento == "somniferos"))
result =1;
if ((tipoEnfermedad == "D" || tipoEnfermedad == "d") && tratamiento == "quirofano")
result =1;
return result ;
}
}
y como trabajo con la clase paciente en la ventana grafica
Código Javascript
:
Ver original//creo la lista de pacientes
listaPacientes = new ArrayList<Paciente>();
btnAnyadirPaciente = new Button(shell, SWT.NONE);
btnAnyadirPaciente.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
listaPacientes.add(new Paciente(textNombre.getText(), textApellidos.getText(),
textDni.getText(), textTfno.getText(), textDireccion.getText(), textEmail.getText(),
textEnfermedad.getText(),textTipoEnfermedad.getText(), textTratamiento.getText()));
int coeficiente = 0;
lblVisorPacientes.setText(lblVisorPacientes.getText()+"\n" +listaPacientes.get(coeficiente).getPaciente());
coeficiente ++;
}
});
btnAnyadirPaciente.setBounds(29, 312, 172, 25);
btnAnyadirPaciente.setText("A\u00F1adir paciente");