Program 3
Program 3
/**
* Permite registrar Clientes.
* Nota: Aun no se implementa el envio de datos via SQL
*
* @author (Rubén Benítez)
* @version (Versión 1.0)
*/
// Ahora incluiremos clases gráficas y de eventos.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class ICliente implements ActionListener // AQUI LE DECIOMOS QUE LA CLASE
TRABJA CON TIPOS DE EVENTOS--CUANDO PONEMOS BOTONES DEBEMOS DE PONER ESTO
{
// Variables de clase
private JFrame dialogo; // Para un dialogo ES UNA CALSE-
private JPanel panel;
private JButton buttonOK; // Dos botones
private JButton buttonCancel;
private JTextField numero; // Para la captura de datos DECLARACION DE ATRI
BUTOS
private JTextField nombre;
private JTextField apellido;
private JTextField RFC;
private JTextField telefono;
private JTextField domicilio;
private JTextField colonia;
private JTextField ciudad;
/**
* Constructor de Objetos de la clase ICliente para Nuevos registros
*/
public ICliente()
{
String rotulo= "Registro de Clientes";
dialogo = new JFrame (); // AQUI SE INICIALIZA
dibujarInterfaz(rotulo); // METODO PROPIO-PERMITE PONER CADA UNO DE
LOS CONTROLES
// Centrar dialogo
dialogo.setLocationRelativeTo(null);
// Para cerrar el dialogo
dialogo.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dialogo.dispose();
}
});
// Hacemos visible el dialogo
dialogo.setVisible(true);
}
/**
* Este metodo se encarga de construir la interfaz de usuario
*
* @param none
* @return
*/
public void dibujarInterfaz(String rotulo)
{
// Configuramos los componentes gráficos
dialogo.setSize(600, 280); //LOS NUMEROS SON LOS PIXELES,PARA EL TAMAÑO D
ELA VENTANA
dialogo.setTitle(rotulo);
// Se inicializa un contenedor de controles
panel = new JPanel();
panel.setLayout(null); // LE DECIMOS AL PANEL COMO QUERENMOS ACOMODAR
LOS CONTROLES--EL NULL ESPORQUE TU ORDENAS
JLabel etiquetaID = new JLabel("ID ");
etiquetaID.setBounds(20, 10, 30, 24);
// etiquetaID.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
panel.add(etiquetaID); // CON ESTE SE AGREGAN CONPONENTES CREADOSN ALPAN
EL
numero = new JTextField(10); // TEXFIELD ES UN DATO DE TIPO ESPECIFICO
numero.setBounds(80, 10, 130, 24);
panel.add(numero);
JLabel etiquetaNombre = new JLabel("Nombre");
etiquetaNombre.setBounds(20, 50, 60, 24);
panel.add(etiquetaNombre);
nombre = new JTextField(25);
nombre.setBounds(80, 50, 250, 24);
panel.add(nombre);
JLabel etiquetaApellido = new JLabel("Apellido");
etiquetaApellido.setBounds(20, 90, 60, 24);
panel.add(etiquetaApellido);
apellido = new JTextField(25);
apellido.setBounds(80, 90, 250, 24);
panel.add(apellido);
JLabel etiquetaTelefono = new JLabel("Telefono");
etiquetaTelefono.setBounds(380, 90, 60, 24);
panel.add(etiquetaTelefono);
telefono = new JTextField(10);
telefono.setBounds(450, 90, 120, 24);
panel.add(telefono);
JLabel etiquetaRFC = new JLabel("RFC");
etiquetaRFC.setBounds(20, 130, 60, 24);
panel.add(etiquetaRFC);
RFC = new JTextField(10);
RFC.setBounds(80, 130, 120, 24);
panel.add(RFC);
JLabel etiquetaDomicilio = new JLabel("Domicilio ");
etiquetaDomicilio.setBounds(280, 130, 60, 24);
panel.add(etiquetaDomicilio);
domicilio = new JTextField(25);
domicilio.setBounds(360, 130, 220, 24);
panel.add(domicilio);
JLabel etiquetaColonia = new JLabel("Colonia ");
etiquetaColonia.setBounds(20, 170, 60, 24);
panel.add(etiquetaColonia);
colonia = new JTextField(25);
colonia.setBounds(80, 170, 170, 24);
panel.add(colonia);
JLabel etiquetaCiudad = new JLabel("Ciudad");
etiquetaCiudad.setBounds(280, 170, 60, 24);
panel.add(etiquetaCiudad);
ciudad = new JTextField(25);
ciudad.setBounds(360, 170, 220, 24);
panel.add(ciudad);
// Creamos dos botones
buttonOK = new JButton("OK");
buttonOK.setBounds(360, 210, 100, 24);
buttonCancel = new JButton("Cancelar");
buttonCancel.setBounds(470, 210, 100, 24);
// Se les provee de posibilidad de evento a los botones
buttonOK.addActionListener(this); //AQUI LES AGREGAS LA ACCION A LOS B
OTONES
buttonCancel.addActionListener(this);
panel.add(buttonOK);
panel.add(buttonCancel);
dialogo.add(panel); //Aqui le decimos qeumetan el panel en lel frame
// No se puede redimensionar el frame
dialogo.setResizable(false); //aqui le decimos que no ce puede redie
mensionar
}
/**
* Permite atender un evento genérico (En los botones).
*
* En este caso se establece una acción a realizar cuando se pulsa el botón OK y
Cancel.
*
*
* @param El evento que invocó a este método
* @return Nada
*/
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == buttonCancel)
dialogo.dispose();
// Si el componente que invocó fue buttonOK
if (e.getSource() == buttonOK)
{
// validamos el ID del cliente
if (numero.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó el ID");
numero.requestFocus();
return;
}
// validamos el nombre del cliente
if (nombre.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó el nombre");
nombre.requestFocus();
return;
}
if (apellido.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó el apellido"
);
apellido.requestFocus();
return;
}
if (RFC.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó el RFC");
RFC.requestFocus();
return;
}
if (domicilio.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó el domici
lio");
domicilio.requestFocus();
return;
}
if (colonia.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó la coloni
a");
colonia.requestFocus();
return;
}
if (ciudad.getText().length() == 0)
{
JOptionPane.showMessageDialog(dialogo,"No se capturó la ciudad
");
ciudad.requestFocus();
return;
}
// Se pasan los valores de los JTextFields al metodo establecerDato
s de la clase Cliente.
// emp.establecerDatos(nombre.getText(), apellido.getText(), RFC.ge
tText(), domicilio.getText(),
// colonia.getText(), localidad.getText(), nip.g
etText(), tipo.getText());
// Se envian los datos a la base de datos (Metodo todavia no implem
entado)
// emp.Guardar())
dialogo.dispose(); // Cierra el dialogo
} // fin de (e.getSource() == buttonOK)
} // fin del método actionPerformed
} // de la clase ICliente