Anda di halaman 1dari 15

1

GUIA 1 DIDACTICA: CONTROLES CON AWT Y SWING


Mdulo II: Aplicaciones empresariales utilizando Java.
Instructor: Carlos Enrique Lemus.
Objetivo:
- Aplicar controles AWT y SWING
- Manejar eventos de controles.
Instrucciones: Digite el cdigo asociado a cada ejercicio segn resultado esperado.
Mdulo II: Aplicaciones empresariales utilizando Java.
Objetivo:
- Aplicar modelo en capas
- Aplicar modelo MVC
Instrucciones: Digite el cdigo asociado a cada ejercicio segn resultado esperado.

INFRAESTRUCTURA













2

DESCRIPCION DEL CODIGO
Clase: DataBase, utilizada para gestionar procesos de datos en un servidor de base de datos
Atributos Descripcin Mtodos Descripcin
Stringbd Nombre Base de Datos DataBase() Constructor, establece conexin
Stringlogin Nombre del usuario DB verificarFiltro() Agreasenenciawhere a consulta
Stringpassword Contrasea de BD IntnumReg() Retorna nmero de registros
Stringurl Direccin urlmysql BooleaninDatos() Ingresa datos a la Base de Datos
Connection con Objeto conexin String[][] seDatos() Realiza una consulta select en DB
PreparedStatementpstm Ejecuta consulta
ResultSet res Almacena resultados DB
String con Almacena consulta a DB
StringcolName[ ] Nombre de campos DB
Clase: Cliente, sirve para generar arreglo de objetos al momento de mostrar resultados en controles de formularios
Stringdui Dui del Cliente String set/getDui() Asigna y retorna dui
String nombre Nombre del cliente String set/getNombre() Asigna y retorna nombre
String apellidos Apellido del cliente String set/getApellido() Asigna y retorna apellido
String telfono Telfono del cliente String set/getTelefono() Asigna y retorna telfono





3

Clase: ModeloAplicacin, Aplica todos los procesos necesarios por lo que adems hereda los de DataBase
ArrayList<Cliente>oPersona Lista de clientes de BD ModeloAplicacion() Inicia objeto oPersona
String [][] aux Recibe datos de BD BooleaninDatosCliente() Inserta datos de cliente
String f Especifica filtro
Clase: ControladorAplicacin, Permite controlar la los eventos ejecutados por el usuario implementa ActionListener
frmCliente vista Informacin de formularios actionPerformed() Captura eventos de controles
ModeloAplicacion modelo Informacin de procesos limpiarCliente() Limpia cajas de texto

ModeloAplicacion modelo Objeto de modelo
frmCliente vista Objetos que definen el formulario
ControladorAplicacion control Recibe objetos de vista y modelo para ejecutar ambas partes
setControlador() Determina que controles desencadenan los eventos
Arrancar()

Inicia la aplicacin










4

CODIGO
Clase: Cliente

public class Cliente {
private String nombre;
private String apellido;
private String dui;
private String telefono;

public Cliente(String d, String n, String a, String t){
nombre=n;
apellido=a;
dui=d;
telefono=t;
}
/**
* @returnthe nombre
*/
public String getNombre() {
return nombre;
}


/**
5

* @return the apellido
*/
public String getApellido() {
return apellido;
}

/**
* @return the carnet
*/
public String getDui() {
return dui;
}

/**
* @return the telefono
*/
public String getTelefono() {
return telefono;
}
}




6

Clase: DataBase
public class DataBase {
private String bd = "dbRegistro";
private String login = "root";
private String password = "";
private String url = "jdbc:mysql://localhost/"+bd;
private Connection conn = null;
private PreparedStatementpstm;
private ResultSet res;
private String con;
private String colName[];

public DataBase(){
try{
//obtenemos el driver de para mysql
Class.forName("com.mysql.jdbc.Driver");
//obtenemos la conexin
conn = DriverManager.getConnection(url,login,password);
if (conn==null){
System.out.println("Error en la base de datos "+bd);
}



7

}catch( SQLException | ClassNotFoundException e){
System.out.println(e);
}

}
private void verificarFiltro(String filtros){
if(!" ".equals(filtros)){
con+=" where "+filtros;
}
}
public intnumReg(String tabla,Stringfiltros){
int totReg=0;
con="Select count(*) as total from "+tabla;
verificarFiltro(filtros);
try {
pstm=conn.prepareStatement(con);
res=pstm.executeQuery();
res.next();
totReg=res.getInt("total");
return totReg;




8

} catch (Exception e) {
System.out.println(e);
return totReg;
}

}
public boolean inDatos(String tabla, String campos, String valores, String filtros){
boolean resIn=false;
con="insert into "+tabla+" values("+valores+")";
try {
pstm=conn.prepareStatement(con);
pstm.execute();
pstm.close();
return resIn=true;
} catch (Exception e) {
System.out.println(e);
return resIn;
}
}





9

public String[][] seDatos(String tabla, String campos, String filtros){
int i=0;
String[][] datos=new String[numReg(tabla, filtros)][campos.split(",").length];
colName=campos.split(",");
con="Select * from "+tabla;
verificarFiltro(filtros);
try {
pstm=conn.prepareStatement(con);
res=pstm.executeQuery();
while(res.next()){
for(int j=0; j<campos.split(",").length; j++){
datos[i][j]=res.getString(colName[j].trim());
}
i++;
}
res.close();
} catch (SQLException e) {
System.out.println(e);
}
return datos;
}
}


10

Clase: ModeloAplicacion
public class ModeloAplicacion extends DataBase {
public ArrayList<Cliente>oPersona;
public ModeloAplicacion(){
oPersona=new ArrayList<Cliente>();
}
public ArrayListgetClientes(String f){
String[][] aux;
int numReg;
aux=this.seDatos("cliente","dui,nombre,apellido,telefono", f);
numReg=this.numReg("cliente", f);
if(numReg!=0){
for(int i=0; i<numReg; i++){
oPersona.add(new Cliente(aux[i][0],aux[i][1],aux[i][2],aux[i][3]));
}
}
return oPersona;
}






11

public booleaninDatosCliente(String v,Stringfiltro){
String f="dui="+"'"+filtro+"'";
if (!getClientes(f).isEmpty() ) {
return false;
}
else {
returnthis.inDatos("cliente", "dui,nombre,apellido,telefono", v, null);
}
}
}


Clase: ControladorAplicacion
Public class ControladorAplicacion implementsActionListener {
private frmCliente vista;
private ModeloAplicacion modelo;

public ControladorAplicacion(frmCliente vista, ModeloAplicacion modelo) {
this.vista = vista;
this.modelo = modelo;
}



12


@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("ingresar")){
ArrayList<String>datos=new ArrayList<String>();
datos.add(vista.jtxtDui.getText());
datos.add(vista.jtxtNombre.getText());
datos.add(vista.jtxtApellido.getText());
datos.add(vista.jtxtTelefono.getText());
StringBuilder v=new StringBuilder();
for(String s: datos){
v.append("'");
v.append(s);
v.append("'");
v.append(",");
}
String valores=v.toString().substring(0,(v.length()-1));
if(modelo.inDatosCliente(valores,datos.get(0))){
JOptionPane.showMessageDialog(null,"Datos Ingresados con exito");
limpiarCliente();
}



13

else
{
JOptionPane.showMessageDialog(null,"Error: Cliente registrado");
modelo.oPersona.clear();
}
limpiarCliente();
}
if(e.getActionCommand().equals("cancelar")){
vista.setVisible(false);
vista.dispose();
}
}
void limpiarCliente(){
vista.jtxtDui.setText(" ");
vista.jtxtNombre.setText(" ");
vista.jtxtApellido.setText(" ");
vista.jtxtTelefono.setText(" ");
}

}




14

Clase: frmCliente
public class frmCliente extends javax.swing.JFrame {

/**
* Creates new form frmCliente
*/
public frmCliente() {
init Components();
this.jbtnIngresar.setActionCommand("ingresar");
this.jbtnCancelar.setActionCommand("cancelar");
}

public void arrancar(){
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void setControlador(ControladorAplicacion c){
jbtnIngresar.addActionListener(c);
jbtnCancelar.addActionListener(c);
}
}



15

Formulario Tabla

Anda mungkin juga menyukai