Está en la página 1de 10

import javax.swing.JFrame; import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.

JTextArea; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.JScrollPane;

//Esta clase se encarga de dos cosas, en primera instancia ejecutar el programa (el main se encuentra contenido aqui), en segunda instancia generar //la interfaz grafica con la que el usuario va a interactuar.

public class Interfaz {

DefaultTableModel modelo_tabla; public JTextArea nombre_textArea; public JTextArea ci_textArea; public JTextArea apellido_textArea; public JTextArea email_textArea; public JTextArea tel_textArea; public JTextArea aNacimiento_textArea; public JButton reg; public JButton reset;

private JFrame frmIngresoDeDatos; //referencia de tipo JFrame privada que luego utilizaremos para apuntar a un objeto JFrame public JTable tabla_Datos; //Referencia de tipo JTable privada que luego utilizaremos para apuntar al objeto de tipo JTable

//: Metodo principal del programa

public static void main(String[] args) {

//metodo principal, limitado a inicializar el programa creando un nuevo objeto de tipo interfaz Interfaz window = new Interfaz(); window.frmIngresoDeDatos.setVisible(true); //definimos la ventana como visible (activa)

//: en esta clase se genera la aplicacion

public Interfaz() { initialize(); }

//: aqui se inicializan los contenidos de la ventana

private void initialize() { frmIngresoDeDatos = new JFrame();

frmIngresoDeDatos.setResizable(false); frmIngresoDeDatos.setTitle("Ingreso de Datos v1.0"); frmIngresoDeDatos.getContentPane().setBackground(SystemColor.control); frmIngresoDeDatos.setBackground(SystemColor.textHighlightText); frmIngresoDeDatos.setBounds(100, 150, 706, 532); frmIngresoDeDatos.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frmIngresoDeDatos.getContentPane().setLayout(null);

//:etiquetas //todas las etiquetas de datos contenidas en la interfaz se generan en esta seccin

JLabel lblDatosDelUsuario = new JLabel("Datos del Usuario"); //creacion de la referencia y objeto tipo JLabel lblDatosDelUsuario.setBounds(12, 12, 168, 15); //aqui se define en que lugar de la pantalla se coloca frmIngresoDeDatos.getContentPane().add(lblDatosDelUsuario); //agregamos el objeto al contenedor

JLabel nombre_Etiqueta = new JLabel("Nombre:"); nombre_Etiqueta.setBounds(47, 60, 168, 15); frmIngresoDeDatos.getContentPane().add(nombre_Etiqueta);

JLabel apellido_Etiqueta = new JLabel("Apellido:"); apellido_Etiqueta.setBounds(201, 60, 168, 15); frmIngresoDeDatos.getContentPane().add(apellido_Etiqueta);

JLabel ci_Etiqueta = new JLabel("Cedula:"); ci_Etiqueta.setBounds(47, 120, 168, 15); frmIngresoDeDatos.getContentPane().add(ci_Etiqueta);

JLabel tel_Etiqueta = new JLabel("Telefono:"); tel_Etiqueta.setBounds(201, 120, 168, 15); frmIngresoDeDatos.getContentPane().add(tel_Etiqueta);

JLabel email_Etiqueta = new JLabel("Email:"); email_Etiqueta.setBounds(47, 180, 168, 15); frmIngresoDeDatos.getContentPane().add(email_Etiqueta);

JLabel aNacimiento_Etiqueta = new JLabel("Ao de Nacimiento:"); aNacimiento_Etiqueta.setBounds(201, 180, 168, 15); frmIngresoDeDatos.getContentPane().add(aNacimiento_Etiqueta);

//:areas de texto //Los "JTextArea" para los campos que se ingresan se generan en este apartado //los cuadros de texto (toolTip) son tambien agregados aqui

nombre_textArea = new JTextArea(); nombre_textArea.setTabSize(10); //tamao (en caracteres) del cuadro de texto nombre_textArea.setBounds(46, 76, 119, 18); //posicion y tamao del cuadro de texto frmIngresoDeDatos.getContentPane().add(nombre_textArea); //en este campo se agrega el objeto al panel

nombre_textArea.setToolTipText("Nombre del usuario a registrar, ejemplo: Pedro"); //este texto aparece al colocar el cursor sobre el elemento

apellido_textArea = new JTextArea(); apellido_textArea.setTabSize(10); apellido_textArea.setBounds(201, 76, 119, 18); frmIngresoDeDatos.getContentPane().add(apellido_textArea); apellido_textArea.setToolTipText("Apellido del usuario a registrar, ejemplo: Ruiz");

ci_textArea = new JTextArea(); ci_textArea.setBounds(46, 135, 119, 18); frmIngresoDeDatos.getContentPane().add(ci_textArea); ci_textArea.setToolTipText("Cedula del usuario a registrar sin espacios ni puntos, ejemplo: 22111444");

aNacimiento_textArea = new JTextArea(); aNacimiento_textArea.setBounds(201, 195, 119, 18); frmIngresoDeDatos.getContentPane().add(aNacimiento_textArea); aNacimiento_textArea.setToolTipText("Ao de nacimiento del usuario a registrar, ejemplo: 1999");

email_textArea = new JTextArea(); email_textArea.setTabSize(10); email_textArea.setBounds(46, 195, 119, 18); frmIngresoDeDatos.getContentPane().add(email_textArea); email_textArea.setToolTipText("Email del usuario a registrar, ejemplo: pedro@hotmail.com, pedro@yahoo.es, pedro@gmail.com, etc.");

tel_textArea = new JTextArea(); tel_textArea.setBounds(201, 135, 119, 18); frmIngresoDeDatos.getContentPane().add(tel_textArea); tel_textArea.setToolTipText("Telefono del usuario a registrar (con su codigo de area y sin espacios), ejemplo: 04243233344");

//:Botones //todos los botones presentes en la interfaz se declaran y establecen aqui

reg = new JButton("Registrar"); frmIngresoDeDatos.getContentPane().add(reg); reg.setBounds(400, 100, 100, 30); reg.setToolTipText("Registrar nuevo usuario");

reset = new JButton("Borrar campos"); frmIngresoDeDatos.getContentPane().add(reset); reset.setBounds(520, 100, 140, 30); reset.setToolTipText("Borra todos los datos en los campos");

//:Agregado de un ActionListener a cada boton //a cada boton se le agrega un ActionListener, un objeto que "escucha" lo que se hace y realiza acciones en funcion de esto

manejo_Eventos pBoton = new manejo_Eventos(); //aqui se crea el objeto de tipo manejo_Eventos y se referencia con pBoton

reg.addActionListener(pBoton); //se agrega el objeto ActionListener a cada boton, este los verificara para detectar si se presionan o no reset.addActionListener(pBoton);

//:JScrollPane //En este segmento se crea un scrollpane (un contenedor que con controles deslizables) y se agrega a la ventana

JScrollPane scrollPane = new JScrollPane(); //Se crea el objeto JScrollPane scrollPane.setBounds(32, 229, 640, 269); //Se especifica su posicion (X, Y) asi como su ancho y alto frmIngresoDeDatos.getContentPane().add(scrollPane); //Se agrega el panel a panel de contenidos (ventana)

//:Tabla //A continuacion se crea el objeto de tipo table y se aaden sus parametros

tabla_Datos = new JTable(); //se crea y asigna un objeto de tipo JTable a la variable de referencia tabla_Datos tabla_Datos.setToolTipText("Datos de Personas Registradas"); //mensaje a mostrar cuando se coloca el cursor sobre la tabla

//:DefaultTableModel //Procedemos a crear la configuracion para el DefaultTableModel que controlara la tabla, sus dimensiones y contenido

String [] nombre_columnas = new String[] {"N\u00B0", "Nombre", "Apellido", "Cedula", "A\u00F1o de N.", "Telefono", "Email"}; Object [][] filas = new Object[][] {

{null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, {null, null, null, null, null, null, null}, };

modelo_tabla = new DefaultTableModel(filas, nombre_columnas); //se crea propiamente el objeto DefaultTableModel

tabla_Datos.setModel(modelo_tabla); //Se asigna este a la JTable para que la controle

tabla_Datos.getColumnModel().getColumn(0).setResizable(true); //Aqui se establece si las tablas pueden o no ser redimensionadas directamente por el usuario

tabla_Datos.getColumnModel().getColumn(0).setPreferredWidth(30); //se establece el tamao preferido para la tabla tabla_Datos.getColumnModel().getColumn(1).setResizable(true); tabla_Datos.getColumnModel().getColumn(2).setResizable(true); tabla_Datos.getColumnModel().getColumn(3).setResizable(true); tabla_Datos.getColumnModel().getColumn(4).setResizable(true); tabla_Datos.getColumnModel().getColumn(5).setResizable(true); tabla_Datos.getColumnModel().getColumn(6).setResizable(true);

scrollPane.setViewportView(tabla_Datos); }

class manejo_Eventos implements ActionListener {

errorMensajes control = new errorMensajes(); //:A continuacion se encuentra el evento ActionEvent el cual toma como variable de referencia "e"

public void actionPerformed(ActionEvent e) {

if (e.getSource() == reg){ control.manejo(Interfaz.this);

else if (e.getSource() == reset){ nombre_textArea.setText(null); //se borra el texto (de haberlo) en el campo ci_textArea.setText(null); apellido_textArea.setText(null); email_textArea.setText(null); aNacimiento_textArea.setText(null); tel_textArea.setText(null); }

} }

También podría gustarte