Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TABASCO
DIVISIN ACADMICA DE INFORMTICA Y SISTEMAS
PARA
JUVENIL
Asignatura:
Laboratorio
de Construccin de Software
Presentan:
Jos
ngel de
Winebaldo
Profesor:
M.A.T.I.
Cunduacn, Tabasco
29 de Mayo, 2014
return false;
}
}
/**para desconectar de la base de datos
*
*/
public static void desconectarBaseDatos(){
try {
conexion.rollback();
} catch (SQLException ex) {
mensaje(ex.getMessage());
}
}
/**
* regresa el ResulSet con los datos de la consulta
* si hay un error muestra el mensaje de error de la bd y regresa null
* @param sql
* @return
*/
public static ResultSet getResultSet(String sql) {
try {
return sentencia.executeQuery(sql);
} catch (SQLException ex) {
mensaje(ex.getMessage());
return null;
}
}
/**
* ejecuta un comando de insert, update o delete en la base de datos
* si la base de datos acepta regresa true, sino muetsra el errro y regresa false
* @param sql sentencia sql
* @return
*/
public static boolean ejecuta(String sql) {
try {
sentencia.executeUpdate(sql);
return true;
} catch (SQLException ex) {
mensaje(ex.getMessage());
return false;
}
}
Pgin
a3
Luego clic derecho sobre controlclientes, nuevo, paquete java, se dio el nombre de visual, clic
derecho sobre visual, agregar dos clases nuevas JFrame Form, se le dio el nombre de Men y
Clientes.
En Men aparecera unas pestaas, que dicen Source (donde se muestra el cdigo) y Design (Se
muestra el entorno grfico) y en Design aparece un recuadro del lado derecho que se llama Palette
(Donde se puede elegir diferentes tipos de objetos).
En Palette, Seleccionar la pestaa Swing Menus y seleccionar Menu Bar, cambiar nombre de File por
Archivo y Edit por Informacin.
Clic derecho sobre Archivo, Add From Palette, Menu Item, colocar el nombre de Clientes, volver a
hacer el mismo procedimiento y colocar el nombre de Enviar Correo.
Ir al main de ControlClientes y agregar el siguiente cdigo:
if (Sistema.conectarBaseDatos()){
Menu menu = new Menu();
menu.setVisible(true);
}
Al ejecutarlo se mostrara la siguiente ventana:
Pgin
a5
En Clientes agregar el diseo que gusten, Table, Label, Button, Combo Box, TextField, acomodarlo a
su gusto.
Para programar las acciones sobre los comandos hacer clic derecho, Events, Action,
actionPerformed. En Menu, Clientes, events, action, actionPerformed. Lo mandara a la pestaa de
Source, agregar:
Cliente cliente = new Cliente(this,false);
Cliente.setVisible(true);
This: se para la referencia el mismo menu (JFrame Form) para que municipios (JDialog Form) pueda
existir, ya que funciona sobre el primero.
False: para que municipios no se ejecute encima de menu, si se coloca true hasta que se cierre se
regresa el control a menu.
Ahora comenzar a trabajar en Clientes:
MiTableModel modelo = new MiTableModel();
En Tabla clic derecho Table Contents, guardar, cerrar y abrir de nuevo el programa, hacer que el
usuario solo pueda seleccionar solo un registro, seleccionar la Tabla, propiedades, clic en
selectionModel, y cambiarlo a Single Selection.
Pgin
a6
resultados.getString("apema"),
resultados.getString("sexo"),
resultados.getString("email"),
resultados.getString("gustos")
}
);
}
nombre.setText("");
apepa.setText("");
apema.setText("");
sexo.setSelectedIndex(-1);
email.setText("");
gustos.setText("");
}else{
//habilitando los botones y tabla
tablaClientes.setEnabled(true);
nuevo.setEnabled(true);
eliminar.setEnabled(true);
tablaClientes.setEnabled(true);
//llenado los objetos visuales de captura
ID.setText(modelo.getValueAt(posicion, 0).toString());
nombre.setText(modelo.getValueAt(posicion, 1).toString());
apepa.setText(modelo.getValueAt(posicion, 2).toString());
apema.setText(modelo.getValueAt(posicion, 3).toString());
String sex = modelo.getValueAt(posicion,4).toString();
if (sex.equals("M")){
sexo.setSelectedIndex(0);
}
else {
sexo.setSelectedIndex(1);
}
if (modelo.getValueAt(posicion,5)==null){
email.setText("");
// email.setEnabled(false);
}
else {
//email.setText("");
email.setEnabled(true);
email.setText(modelo.getValueAt(posicion,5).toString());
}
gustos.setText(modelo.getValueAt(posicion, 6).toString());
}
}
Click sobre cualquier registro y actualizar el detalle.
Botn derecho sobre tabla ->Events->Mouse->mouseClicked
posicion=tabla.getSelectedRow();
actualizar();
Pgin
a9
Dndole funcionalidad a cada uno de los botones, para cada uno botn clic derecho, Events, Action,
actionPerformed. Funcin al botn nuevo:
private void nuevoActionPerformed(java.awt.event.ActionEvent evt) {
nuevoRegistro = !nuevoRegistro;
if (modelo.getRowCount()==0)
nuevoRegistro= false;
actualizar();
}
Funcin al botn Guardar:
private void guardarActionPerformed(java.awt.event.ActionEvent evt) {
if (Sistema.preguntar("Confirmar Guardar")){
String consulta;
//variables para almacenar los valores del detalle, para su posterior envo a la BD
int temporalId=0;
String temporalNombre= "";
String temporalApePa= "";
String temporalApeMa= "";
String temporalEmail= "";
String temporalSexo = "";
String temporalGustos = "";//por si no seleccion, para mandar null a la BD
//leyendo el Id e intentando convertirlo a entero
try {
temporalId= Integer.parseInt(ID.getText());
}catch(Exception ex){
Sistema.mensaje("ID No Vlido");
}
temporalSexo="null";
if (sexo.getSelectedIndex()==-1)
{
Sistema.mensaje("Seleccione el Sexo del Cliente");
return ;
Pgin
a 10
}else
temporalSexo=sexo.getSelectedItem().toString().substring(0,1);
temporalNombre= nombre.getText().toUpperCase();
temporalApePa= apepa.getText().toUpperCase();
temporalApeMa= apema.getText().toUpperCase();
temporalEmail= email.getText();
temporalGustos = gustos.getText();
if (nuevoRegistro){
consulta = "insert into clientes (idClientes, nombre, apepa, apema, sexo, email,
gustos) values "+
"("+temporalId+
","+Sistema.cadenaBaseDatos(temporalNombre)+
","+Sistema.cadenaBaseDatos(temporalApePa)+
","+Sistema.cadenaBaseDatos(temporalApeMa)+
","+Sistema.cadenaBaseDatos(temporalSexo)+
","+Sistema.cadenaBaseDatos(temporalEmail)+
","+Sistema.cadenaBaseDatos(temporalGustos)+")";
if (Sistema.ejecuta(consulta)){
nuevoRegistro=false;
modelo.addRow(new Object[]
{temporalId,temporalNombre,temporalApePa,temporalApeMa,temporalSexo,temporalEmail,tem
poralGustos});
posicion = posicion +1;
actualizar();
}
}else{
consulta = "update clientes set"+
" idClientes="+temporalId+
",nombre ="+Sistema.cadenaBaseDatos(temporalNombre)+
",apepa ="+Sistema.cadenaBaseDatos(temporalApePa)+
Pgin
a 11
",apema ="+Sistema.cadenaBaseDatos(temporalApeMa)+
",sexo ="+Sistema.cadenaBaseDatos(temporalSexo)+
",email ="+Sistema.cadenaBaseDatos(temporalEmail)+
",gustos ="+Sistema.cadenaBaseDatos(temporalGustos)+
" where idClientes="+modelo.getValueAt(posicion, 0);
if (Sistema.ejecuta(consulta)){
modelo.setValueAt(temporalId, posicion, 0);
modelo.setValueAt(temporalNombre, posicion, 1);
modelo.setValueAt(temporalApePa, posicion, 2);
modelo.setValueAt(temporalApeMa, posicion, 3);
modelo.setValueAt(temporalSexo, posicion, 4);
modelo.setValueAt(temporalEmail, posicion, 5);
modelo.setValueAt(temporalGustos, posicion, 6);
actualizar();
}
}
}
}
Funcin al botn Eliminar:
private void eliminarActionPerformed(java.awt.event.ActionEvent evt) {
if (Sistema.preguntar("Confirmar Eliminar")){
String consulta = "delete clientes "+
" where idClientes="+modelo.getValueAt(posicion, 0);
if (Sistema.ejecuta(consulta)){
modelo.removeRow(posicion);
tablaClientes.setRowSelectionInterval(0, 0);
posicion=0;
actualizar();
}
}
}
Pgin
a 12
Pgin
a 13
En el paquete visual, crear un JFrame que se le dio el nombre de Mail y la cual quedara como la
siguiente imagen.
import javax.mail.Multipart;
import javax.mail.Transport;
import javax.swing.JOptionPane;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.AddressException;
Agregar el siguiente cdigo:
private String from = "";//tu_correo@gmail.com
private String password = "";//tu password: 123456 :)
private InternetAddress[] addressTo;// destinatario1@hotmail.com,destinatario2@hotmail.com,
destinatario_n@hotmail.com
private String Subject = "";//titulo del mensaje
private String MessageMail = "";//contenido del mensaje
public Jmail(){}
public void SEND()
{
try {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.user", "usuario");
props.put("mail.smtp.port", 25);
//
SMTPAuthenticator auth = new SMTPAuthenticator( getFrom(), getPassword() );
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(false);
//Se crea destino y origen del mensaje
MimeMessage mimemessage = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress( getFrom() );
mimemessage.setFrom(addressFrom);
mimemessage.setRecipients(Message.RecipientType.TO, addressTo);
mimemessage.setSubject( getSubject() );
// Se crea el contenido del mensaje
MimeBodyPart mimebodypart = new MimeBodyPart();
mimebodypart.setText( getMessage() );
mimebodypart.setContent( getMessage() , "text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(mimebodypart);
mimemessage.setContent(multipart);
mimemessage.setSentDate(new Date());
Pgin
a 15
Transport.send(mimemessage);
JOptionPane.showMessageDialog(null, "Correo enviado. Enjoy!!!");
} catch (MessagingException ex) {
System.out.println(ex);
}
}
//remitente
public void setFrom(String mail){ this.from = mail; }
public String getFrom(){ return this.from; }
//Contrasea
public void setPassword(char[] value){
this.password = new String(value);
}
public String getPassword(){ return this.password; }
//destinatarios
public void setTo(String mails){
String[] tmp =mails.split(",");
addressTo = new InternetAddress[tmp.length];
for (int i = 0; i < tmp.length; i++) {
try {
addressTo[i] = new InternetAddress(tmp[i]);
} catch (AddressException ex) {
System.out.println(ex);
}
}
}
public InternetAddress[] getTo(){ return this.addressTo; }
//titulo correo
public void setSubject(String value){ this.Subject = value; }
public String getSubject(){ return this.Subject; }
//contenido del mensaje
public void setMessage(String value){ this.MessageMail = value; }
public String getMessage(){ return this.MessageMail; }
En Mail darle funcin al boton Enviar:
private void cmdSENDActionPerformed(java.awt.event.ActionEvent evt) {
mail.setFrom( this.txtFROM.getText() );
mail.setPassword( this.txtPWD.getPassword() );
mail.setTo( this.txtTO.getText() );
mail.setSubject( this.txtSUBJECT.getText() );
mail.setMessage( this.txtMESSAGE.getText() );
mail.SEND(); }
Pgin
a 16
Pgin
a 17