miércoles, 13 de julio de 2011

Taller POO Eventos Errores y Excepciones.


Bueno aqui van los codigos de errores eventos y excepciones.
En la excepcion marcamos que si no se pudo conectar a la base de datos, que despliegue un ERROR_MESSAGE cone l objetivo de saber que fue lo que paso, en caso de que si se conecto correctamente te envia un mensaje de informacion para que sepas que estas conectado correctamente.

 try
{
Class.forName(drv); cont = DriverManager.getConnection(db, user, pass); //Este es el que hace la conexión de los statement con MySQL
hector = cont.createStatement(); //Haciendo esto permites que se pueda utilizar para trabajar
//st.executeUpdate("DROP TABLE TABLA");
System.out.print("Conexion Exitosa\n");
}catch(Exception e) { System.out.println("No se pudo conectar a la B
ase de Datos");
JOptionPane.showMessageDialog(null,"No se pudo conectar a la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
}
}
Otra tanto excepcion como evento es cuando le damos ignresar usuario, aqui al momento de ingresar al usuario lo que haremos es crear una excepcion por si los datos que introduce son incorrectos, como poner variables flotantes dentro de varchars, o bien si no se pudo conectar a la base de datos.
public void insertarDatos(String usuario, String nombre, String pass, int peso, String sexo, String email) {
try {
hector.executeUpdate("INSERT INTO usuario (nombre, pass, usuario, apellido, peso, sexo) VALUES ('"+nombre+"', '"+pass+"', '"+usuario+"', '"+email+"', "+peso+", '"+sexo+"')");
System.out.println("Se insertaron los datos correctamente\n");
JOptionPane.showMessageDialog(null,"Se han introducido correctamente los datos", "Correcto", JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Los datos son incorrectos", "Error", JOptionPane.ERROR_MESSAGE);
System.out.println("No se pudieron insertar los datos\n");
System.out.println("INSERT INTO usuario (nombre, pass, usuario, apellido, peso, sexo) VALUES ("+nombre+", "+pass+", "+usuario+", "+email+", "+peso+", "+sexo+")");
}
}

Aqui podemos ver lo explicado con una captura de pantalla.





En esta ultima captura de pantalla podemos ver como al momento de llamar al evento ingresar, el usuario y contrasena marcado no esta en la base de datos, por eso lo que hace el codigo es llamar una excepcion y esa excepcion crearla con un mensaje, que el mensaje dice que no son correctos los usuarios y contrasenas. Este es el codigo de dicha pantalla para que vean como compare los datos.



public void compararDatos(String usuario, String pass){
try {
rs = hector.executeQuery("SELECT pass, usuario FROM usuario WHERE pass ="+pass+" AND usuario = "+usuario+"");
System.out.println("El nombre y usuario son correctos");
boolean x = false;
JOptionPane.showMessageDialog(null,"Muy bien amigito!", "Excelente", JOptionPane.INFORMATION_MESSAGE);
}
catch (Exception e){
JOptionPane.showMessageDialog(null,"Error contrasena y usuario incorrecta", "Error", JOptionPane.ERROR_MESSAGE);
System.out.println("El nombre de usuario y/o contrasena es incorrecta");
boolean x = true;
System.out.println("SELECT usuario, pass FROM usuario WHERE usuario = "+usuario+" AND pass = "+pass+"");
}


}


Estas son algunas de mis excepciones, ahora vamos a habalr sobre los eventos que tengo pero ya con mas codigo, al ActionPerformed, esta funcion es para llamar a que el boton, o cualquier cosa que vaya a hacer algo haga algo. Este es un ejemplo de mi codigo.
  private class thehandler implements ActionListener {
/*Metodo actionPerformed
* aqui se ejecutaran los botones, y ver que hace cada boton cuando le das una accion
*/
public void actionPerformed (ActionEvent evento){
Database db = new Database();

if(evento.getSource() == ingresar){
Usuario = usuario.getText();
Password = password.getText();
db.compararDatos(Usuario, Password);
Enfermedad enfer = new Enfermedad();

}

else if (evento.getSource() == cancelar);
dispose();

}


Aqui podemos ver que en el action performed le damos un atributo que es el evento, el cual es otro atributo de ActionEvent, este sirve para en cuanto le des click a algo, boom te salga algo y eso es lo que sigue del codig, por ejemplo en este codigo estamos comparando los datos de los usuarios para ingresar al sistema.




En este evento de boton, ponemos que en cuanto le pique a un boton y escoja una cosa en el combo box el text area desplegara algo. Lo que desplagara es la medicina y los sintomas de la enfermedad que la persona escojio dentro del combobox.

private class thehandler implements ActionListener {

public void actionPerformed (ActionEvent evento){
bambam = combo.getSelectedItem();
texto = bambam.toString();
if(mevale[0] == null ? texto == null : mevale[0].equals(texto)){
area.setText(gripa);
area6.setText(gripaM);

}
if(mevale[1]== null ? texto == null : mevale[1].equals(texto)){
area.setText(migrana);
area6.setText(migranaM);
}
if(mevale[2]== null ? texto == null : mevale[2].equals(texto)){
area.setText(agruras);
area6.setText(agrurasM);
}
Medicina med = new Medicina ();

}
}
}



Bueno estas son pocos eventos y exepciones que tengo en mi proyecto, las demas las pueden ver en el codigo fuente que despues subire.

martes, 12 de julio de 2011

Herencia Taller POO


Bueno la herencia de mis clases significa mucho, ya que al implementar los GUI cambia mucho el codigo en si; empeze haciendo todo en codigo duro, pero ya vi que en el momento de estar programando con interfazes gaficas todo cambia demasiado. Aqui va lo que es herencia en mis clases mediante diagrama de clase.
Bueno aqui se puede ver la unica herencia que use, la use en UsuarioYaRegistrado hereda a Usuario ya que el usuarioyaregistrado es un usuario por ello se hereda; esta es solo l aunica que use pero en mi codigo fuente use un par de herencias a diferentes tipos de cosas tales como JFrame y esas cosas para usar las interfazes grafias.
Esto es necesario para implementar dentro de tu clase este tipo de cosas de interfazes ya que si no lo haces te marcara error y no te va a reconocer las cosas aunque importes las librerias de interfaces.

En algun momento pense en heredar otras cosas, como hacer otra clase llamada usuarionoregistrado, pero no lo vi como algo necesario ya que dentro de la clase usuario puse eso y me jalo exclente. Intente hacerlo para crear otra herencia, sin embargo al momento de hacerlo me di cuenta que despues la clase usuario no iva a hacer nada, solo iva a dar de alta las variables que usarian este tipo de herencia asi que mejor me quede como estaba. Al momento que vi necesitar otra interfaz grafica dije "pues hago la de usuarioyaregistado" al momento de hacer esta se crea otra interfaz, con el objetivo de que despues del registro aparesca la siguiente interfaz.

Bueno chavos muchas gracias que tengan buen dia.

domingo, 10 de julio de 2011

Diagrama de Clases POO

Bueno este es mi Diagrama de clases junto con el codigo autogenerado. Aqui estan tanto los metodos como los atributos de las clases qe lo requieren, tambien la dependencia que tiene el uno a otro por si hay algun par de dudas.

viernes, 8 de julio de 2011

Taller POO Especificacion Tecnica

Esta es mi especificacion tecnica. Si la quieren bajar ahi abajo esta el link. Gracias

Taller POO primera entrada (otra aplicacion)

Bueno olvide poner estas imagenes de otra aplicacion llamada Xampp, esta aplicacion me ayudara a poner en linea la base de datos que estare usando para mi proyecto.

Esta es la primera, aqui damos aceptar para poder ejecutar e iniciar la instalacion.


Aqui sera donde pondremos en el directorio, lo recomendado es el c:/ ya que ahi es un lugar muy visible para esta aplicacion que estaremos usando mucho
Aqui le damos aceptar, ya que estaremos usando MySql muuy seguido y no como un servicio.
Esta instalacion tarda alrededor de 10 minutos, el programa esta instalando lo necesario para abrir las bases de datos.

Despues de esto saldra una ventana donde le daran Finalizar.
Boom! ya tienen XAMPP para sus bases de datos.

Taller POO Esqueleto de mis clases

Bueno esto es solo el comienzo de mi proyecto, ya que en la definicion de clases es bueno obtener una iniciacion para ello. Aqui estoy dando solo un par de clases para que la entrada no sea tan nefasta al momento de leer todo.
public class Usuario {

public Usuario (String usuario, String pass, String nombre, String apellido, String peso, String sexo, String email){
// declaramos los atributos de la clase usuario
}
public boolean escogerTipoReg(){
//aqui escogemos si el usuario ya esta registrado o no
}

public Usuario registro(){
// si el usuario no se ha registrado, aqui es donde le preguntaremos su informacion
}
public void noregistro(Usuario u1){
//si el usuario ya esta registrado, usaremos los atributos del objeto tipo usuario llamado u1
}



Eso es todo para la clase Usuario, ahora veremos la clase enfermedad.

public class Enfermedad {
public Enfermedad (){
//aqui no necesitamos constructor ya que solo devolvera listas de las enfermedades
}
public void mostrarGripa(){
//en esta clase mostraremos lo que es la enfermedad gripa, pero esto fue solo para comenzar ya que por el momento estoy intentandolo hacerlo en base de datos.
}


Eso fue todo para la clase enfermedad, ahora veremos por ultimo la clase base de datos, ya que no pondre todo el esqueleto de mis clases por que solo seria un monton de codigo aburrido.

public class Database {
//declaramos la clase base de datos, ya que si la ponemos en otra clase solo seria igual, demasiado codigo.

public Database() {
//aqui es el constructor, lo que hara este constructor es hacer la conexion a la base de datos y te dira si fue exitosa o no.
}
}



Eso es todo por el momento sobre las clases, despues les hare llegar un poco mas.

lunes, 27 de junio de 2011

Taller POO primera entrada

Bueno, este es mi blog durante la sesion de taller de programacion orientado a objetos, en veranos.
Mi nombre es Hector Tinajero Galarza

Las herramientas que usare para programar en java mi proyecto de POO en veranos son :

  • Emacs (para programar).
  • Lenguaje de programacion Java.
  • JDK (compilador del lenguaje de java).
  • Linux.
  • Los creadores de diagramas de clase como BOUML o UMBRELLO
  • XAMPP herramienta para las bases de datos
  • JDBC, otra herramienta para las bases de datos que permite la coneccion entre java y Mysql
  • Mysql, el tipo de base de datos que estare usando.
Para realizar mi projecto hago un uso extenso de estos tutoriales :

Para los patrones de diseno recomienda altamente esta pagina, ya que te viene todo lo que necesitas saber de ellos.
se me hacen que son los mejores ya que vienen de oracle, compania quien invento java.

En esos tutoriales, viene todo lo que pueden necesitar, tales como documentacion, introduccion a programacion orientada a objetos etc.. Sirve de mucho, se los recomendaria demasiado.

Instalacion de heramientas

Aqui va la instalacion de netbeans paso por paso, ya que es la herramienta que usare para programar estre proyecto.

1.-Al ejecutar el instalador aparecerá esta ventana:


Clic en en Siguiente. Aceptan los términos del acuerdo de licencia, clic en Siguiente y aparece la siguiente ventana

Seleccionan la ruta donde se va a instalar NetBeans y seleccionan la ruta del JDK™ con la que trabajará NetBeans. Clic en Siguiente y luego clic en Instalar

Y luego clic en Terminar.
De esta forma ya tenemos instalado en nuestro equipo NetBeans 6.5 en español


Para finalizar esta entrada, demostrare mi primer codigo con una clase y 2 objetos.





public class Triangulo { //declaramos la clase triangulo
private int base; // variable de tipo base
private int altura; // variable de tipo int altura
private float area; // variable de tipo flotante area

public Triangulo (int base, int altura ){ //creamos el constructor
this.base = base;
this.altura = altura;
}

public void areaTriangulo() { //funcion donde hacemos la operacion
area=(base*altura)/2;

}
public void imprimeArea () { //fuincon donde imprimimos el are del triangulo
System.out.print("El area de tu triangulo es: "+ area);
}



public static void main (String[] args){ //metodo main
Triangulo triangulo1, triangulo2; //creacion de 2 objetos
triangulo1 = new Triangulo(10,5); // atributos de los 2 objetos
triangulo2 = new Triangulo (8,5);

triangulo1.areaTriangulo(); // de esta manera hacemos qe calcule el are del triangulo 1
triangulo1.imprimeArea(); // y de esta manera imprimios el area del triangulo


}

}