SlideShare una empresa de Scribd logo
1 de 14
En esta práctica vamos a desarrollar una aplicación de gestión de alumnos (altas, bajas y modificaciones). Como parte de la
información de los alumnos está: la clave (que debe ser única), el nombre, los apellidos, la edad y su dirección (consistente
en el nombre de la calle, el número y el código postal).




El interfaz visual de la aplicación debe ser algo como un frame con tres pestañas. Los paneles de bajas y modificaciones
mostrarán en un desplegable todas las claves de los alumnos dados de alta.

La persistencia de los datos se hará en un Sistema Gestor de Base de Datos, que contará con una única tabla llamada
ALUMNOS cuya definición es:

       CLAVE: VARCHAR(4).
       NOMBRE: VARCHAR(10).
       APELLIDOS: VARCHAR(20).
       EDAD: INTEGER.
       CALLE: VARCHAR(20).
       NUMERO: INTEGER.
       CODIGO: VARCHAR(5).




                                                                                bitCoach::Juan Bautista Cascallar Lorenzo
Direccion.java

import java.io.Serializable;

public class Direccion implements Serializable {

       private static final long serialVersionUID = 1L;

       //ATRIBUTOS
       private String calle;
       private String numero;
       private String codPostal;

       //Constructor
       public Direccion(String calle, String numero, String codPostal){
              this.calle = calle;
              this.numero = numero;
              this.codPostal = codPostal;
       }

       //GETTERS
       public String getCalle(){
              return calle;
       }

       public String getNumero(){
              return numero;
       }

       public String getCodPostal(){
              return codPostal;
       }

       //SETTERS
       public void setCalle(String calle){
              this.calle = calle;
       }

       public void setNumero(String numero){
              this.numero = numero;
       }

       public void setCodPostal(String codPostal){
              this.codPostal = codPostal;
       }

}


Alumno.java

import java.io.Serializable;

public class Alumno implements Serializable {

       private static final long serialVersionUID = 1L;

       //ATRIBUTOS
       //--- Datos Personales ---
       private String clave; //DNI
       private String nombre;
       private String apellidos;
       private String edad;
       //--- Dirección ---
       private Direccion direccion;




                                                                          bitCoach::Juan Bautista Cascallar Lorenzo
public Alumno(String clave, String nombre, String apellidos, String edad,
                      String calle, String numero, String codPostal){

              this.clave = clave;
              this.nombre = nombre;
              this.apellidos = apellidos;

              direccion = new Direccion(calle, numero, codPostal);

       }

       //GETTERS
       public String getClave(){
              return clave;
       }

       public String getNombre(){
              return nombre;
       }

       public String getApellidos(){
              return apellidos;
       }

       public String getEdad(){
              return edad;
       }

       public Direccion getDireccion(){
              return direccion;
       }

       //SETTERS
       public void setClave(String clave){
              this.clave = clave;
       }

       public void setNombre(String nombre){
              this.nombre = nombre;
       }

       public void setApellidos(String apellidos){
              this.apellidos = apellidos;
       }

       public void setEdad(String edad){
              this.edad = edad;
       }

}


conexionDDBB.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class conexionDDBB {

       //ATRIBUTOS
       private Connection con = null;

       //CONSTRUCTOR
       public conexionDDBB(){

              try {
                     Class.forName("com.mysql.jdbc.Driver");
                     try {
                             con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/UNIVERSIDAD","root","");
                     } catch (SQLException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                     }
              } catch (ClassNotFoundException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
       }
                                                                          bitCoach::Juan Bautista Cascallar Lorenzo
//GETTERS
       public Connection getConexion(){
              return con;
       }

       //OTROS MÉTODOS
       public void cerrarConexion(){
              try {
                      con.close();
              } catch (SQLException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
              }
       }

}


gestorAlumnos.java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//------
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


public class gestorAlumnos extends JFrame implements ActionListener,WindowListener,ChangeListener {

       private static final long serialVersionUID = 1L;

       //ATRIBUTOS
       Connection con = null;

       //--- Altas ---
       JTextField txt_clave_altas = null;
       JTextField txt_nombre_altas = null;
       JTextField txt_apellidos_altas = null;
       JTextField txt_edad_altas = null;

       JTextField txt_calle_altas = null;
       JTextField txt_numero_altas = null;
       JTextField txt_codpostal_altas = null;
       //--- Bajas ---
       JComboBox combo_bajas = null;

       JTextField   txt_clave_bajas = null;
       JTextField   txt_nombre_bajas = null;
       JTextField   txt_apellidos_bajas = null;
       JTextField   txt_edad_bajas = null;

       JTextField txt_calle_bajas = null;
       JTextField txt_numero_bajas = null;
       JTextField txt_codpostal_bajas = null;

       //--- Modificaciones ---
       JComboBox combo_modif = null;

       JTextField txt_clave_modif = null;
       JTextField txt_nombre_modif = null;
                                                                          bitCoach::Juan Bautista Cascallar Lorenzo
JTextField txt_apellidos_modif = null;
       JTextField txt_edad_modif = null;

       JTextField txt_calle_modif = null;
       JTextField txt_numero_modif = null;
       JTextField txt_codpostal_modif = null;

       //CONSTRUCTOR
       public gestorAlumnos(){

//=========== INTERFAZ GRÁFICA =======================================
               this.setTitle("Gestión de Alumnos");
               this.setSize(300, 400);

              //--- Pestañas ---
              JTabbedPane obj_tabbedPane = new JTabbedPane();
              obj_tabbedPane.setName("obj_tabbedPane");
              JPanel panel1 = new JPanel();
              panel1.setLayout(null);
              obj_tabbedPane.addTab("Altas", panel1);
              JPanel panel2 = new JPanel();
              panel2.setLayout(null);
              obj_tabbedPane.addTab("Bajas", panel2);
              JPanel panel3 = new JPanel();
              panel3.setLayout(null);
              obj_tabbedPane.addTab("Modificaciones", panel3);
              this.getContentPane().add(obj_tabbedPane);

              obj_tabbedPane.addChangeListener(this);

              //--- Menú ---
              JMenuBar barraMenu = new JMenuBar();
              JMenu menu1 = new JMenu("Fichero");

              JMenuItem salvar= new JMenuItem("Salvar");
              salvar.setName("btn_salvar");
              salvar.addActionListener(this);
              menu1.add(salvar);

              JMenuItem salir = new JMenuItem("Salir");
              salir.setName("btn_salir");
              salir.addActionListener(this);
              menu1.add(salir);

              barraMenu.add(menu1);
              this.setJMenuBar(barraMenu);

              //======= PESTAÑA ALTAS ========
              //- Datos Personales -
              TitledBorder tb_altas = new TitledBorder("Datos personales:");
              JLabel etiquetaBorde_altas = new JLabel();
              etiquetaBorde_altas.setBorder(tb_altas);
              etiquetaBorde_altas.setBounds(10, 10, 260, 110);
              panel1.add(etiquetaBorde_altas);

              JLabel lbl_clave_altas = new JLabel();
              lbl_clave_altas.setBounds(20, 30, 70, 20);
              lbl_clave_altas.setText("Clave:");
              panel1.add(lbl_clave_altas);
              txt_clave_altas = new JTextField();
              txt_clave_altas.setName("txt_clave_altas");
              txt_clave_altas.setBounds(110, 30, 150, 20);
              panel1.add(txt_clave_altas);

              JLabel lbl_nombre_altas = new JLabel();
              lbl_nombre_altas.setBounds(20, 10+20*2, 70, 20);
              lbl_nombre_altas.setText("Nombre:");
              panel1.add(lbl_nombre_altas);
              txt_nombre_altas = new JTextField();
              txt_nombre_altas.setName("txt_nombre_altas");
              txt_nombre_altas.setBounds(110, 10+ 20*2, 150, 20);
              panel1.add(txt_nombre_altas);

              JLabel lbl_apellidos_altas = new JLabel();
              lbl_apellidos_altas.setBounds(20, 10+20*3, 70, 20);
              lbl_apellidos_altas.setText("Apellidos:");
              panel1.add(lbl_apellidos_altas);
              txt_apellidos_altas = new JTextField();
              txt_apellidos_altas.setName("txt_apellidos_altas");
                                                                         bitCoach::Juan Bautista Cascallar Lorenzo
txt_apellidos_altas.setBounds(110, 10+20*3, 150, 20);
panel1.add(txt_apellidos_altas);

JLabel lbl_edad_altas = new JLabel();
lbl_edad_altas.setBounds(20, 10+20*4, 70, 20);
lbl_edad_altas.setText("Edad:");
panel1.add(lbl_edad_altas);
txt_edad_altas = new JTextField();
txt_edad_altas.setName("txt_edad_altas");
txt_edad_altas.setBounds(110, 10+20*4, 150, 20);
panel1.add(txt_edad_altas);

//- Dirección -
TitledBorder tbD_altas = new TitledBorder("Dirección:");
JLabel etiquetaBordeD_altas = new JLabel();
etiquetaBordeD_altas.setBorder(tbD_altas);
etiquetaBordeD_altas.setBounds(10, 130, 260, 90);
panel1.add(etiquetaBordeD_altas);

JLabel lbl_calle_altas = new JLabel();
lbl_calle_altas.setBounds(20, 150, 70, 20);
lbl_calle_altas.setText("Calle:");
panel1.add(lbl_calle_altas);
txt_calle_altas = new JTextField();
txt_calle_altas.setName("txt_calle_altas");
txt_calle_altas.setBounds(110, 150, 150, 20);
panel1.add(txt_calle_altas);

JLabel lbl_numero_altas = new JLabel();
lbl_numero_altas.setBounds(20, 150+20*1, 70, 20);
lbl_numero_altas.setText("Número:");
panel1.add(lbl_numero_altas);
txt_numero_altas = new JTextField();
txt_numero_altas.setName("txt_numero_altas");
txt_numero_altas.setBounds(110, 150+ 20*1, 150, 20);
panel1.add(txt_numero_altas);

JLabel lbl_codpostal_altas = new JLabel();
lbl_codpostal_altas.setBounds(20, 150+20*2, 70, 20);
lbl_codpostal_altas.setText("Cód. Postal:");
panel1.add(lbl_codpostal_altas);
txt_codpostal_altas = new JTextField();
txt_codpostal_altas.setName("txt_codpostal_altas");
txt_codpostal_altas.setBounds(110, 150+ 20*2, 150, 20);
panel1.add(txt_codpostal_altas);

//- Botones --
JButton btn_limpiar_altas = new JButton("Limpiar");
btn_limpiar_altas.setName("btn_limpiar_altas");
btn_limpiar_altas.addActionListener(this);
btn_limpiar_altas.setBounds(40, 240, 80, 20);
panel1.add(btn_limpiar_altas);

JButton btn_daralta_altas = new JButton("Dar de alta");
btn_daralta_altas.setName("btn_daralta_altas");
btn_daralta_altas.addActionListener(this);
btn_daralta_altas.setBounds(140, 240, 100, 20);
panel1.add(btn_daralta_altas);
//======= PESTAÑA ALTAS ========

//======= PESTAÑA BAJAS ========
//-- Alumnos - Combo Clave
TitledBorder tb_bajas_clave = new TitledBorder("Alumnos:");
JLabel etiquetaBorde_bajas_combo = new JLabel();
etiquetaBorde_bajas_combo.setBorder(tb_bajas_clave);
etiquetaBorde_bajas_combo.setBounds(10, 10, 260, 50);
panel2.add(etiquetaBorde_bajas_combo);

JLabel lbl_clave_bajas_combo = new JLabel();
lbl_clave_bajas_combo.setBounds(20, 30, 70, 20);
lbl_clave_bajas_combo.setText("Clave:");
panel2.add(lbl_clave_bajas_combo);

combo_bajas = new JComboBox();
combo_bajas.setName("combo_bajas");
combo_bajas.addActionListener(this);
combo_bajas.setBounds(110, 30, 150, 20);
panel2.add(combo_bajas);

                                                              bitCoach::Juan Bautista Cascallar Lorenzo
//- Datos Personales -
TitledBorder tb_bajas = new TitledBorder("Datos personales:");
JLabel etiquetaBorde_bajas = new JLabel();
etiquetaBorde_bajas.setBorder(tb_bajas);
etiquetaBorde_bajas.setBounds(10, 60, 260, 110);
panel2.add(etiquetaBorde_bajas);

JLabel lbl_clave_bajas = new JLabel();
lbl_clave_bajas.setBounds(20, 80, 70, 20);
lbl_clave_bajas.setText("Clave:");
panel2.add(lbl_clave_bajas);
txt_clave_bajas = new JTextField();
txt_clave_bajas.setEditable(false);
txt_clave_bajas.setName("txt_clave_bajas");
txt_clave_bajas.setBounds(110, 80, 150, 20);
panel2.add(txt_clave_bajas);

JLabel lbl_nombre_bajas = new JLabel();
lbl_nombre_bajas.setBounds(20, 60+20*2, 70, 20);
lbl_nombre_bajas.setText("Nombre:");
panel2.add(lbl_nombre_bajas);
txt_nombre_bajas = new JTextField();
txt_nombre_bajas.setEditable(false);
txt_nombre_bajas.setName("txt_nombre_bajas");
txt_nombre_bajas.setBounds(110, 60+ 20*2, 150, 20);
panel2.add(txt_nombre_bajas);

JLabel lbl_apellidos_bajas = new JLabel();
lbl_apellidos_bajas.setBounds(20, 60+20*3, 70, 20);
lbl_apellidos_bajas.setText("Apellidos:");
panel2.add(lbl_apellidos_bajas);
txt_apellidos_bajas = new JTextField();
txt_apellidos_bajas.setEditable(false);
txt_apellidos_bajas.setName("txt_apellidos_bajas");
txt_apellidos_bajas.setBounds(110, 60+20*3, 150, 20);
panel2.add(txt_apellidos_bajas);

JLabel lbl_edad_bajas = new JLabel();
lbl_edad_bajas.setBounds(20, 60+20*4, 70, 20);
lbl_edad_bajas.setText("Edad:");
panel2.add(lbl_edad_bajas);
txt_edad_bajas = new JTextField();
txt_edad_bajas.setEditable(false);
txt_edad_bajas.setName("txt_edad_bajas");
txt_edad_bajas.setBounds(110, 60+20*4, 150, 20);
panel2.add(txt_edad_bajas);

//- Dirección -
TitledBorder tbD_bajas = new TitledBorder("Dirección:");
JLabel etiquetaBordeD_bajas = new JLabel();
etiquetaBordeD_bajas.setBorder(tbD_bajas);
etiquetaBordeD_bajas.setBounds(10, 170, 260, 90);
panel2.add(etiquetaBordeD_bajas);

JLabel lbl_calle_bajas = new JLabel();
lbl_calle_bajas.setBounds(20, 190, 70, 20);
lbl_calle_bajas.setText("Calle:");
panel2.add(lbl_calle_bajas);
txt_calle_bajas = new JTextField();
txt_calle_bajas.setEditable(false);
txt_calle_bajas.setName("txt_calle_bajas");
txt_calle_bajas.setBounds(110, 190, 150, 20);
panel2.add(txt_calle_bajas);

JLabel lbl_numero_bajas = new JLabel();
lbl_numero_bajas.setBounds(20, 190+20*1, 70, 20);
lbl_numero_bajas.setText("Número:");
panel2.add(lbl_numero_bajas);
txt_numero_bajas = new JTextField();
txt_numero_bajas.setEditable(false);
txt_numero_bajas.setName("txt_numero_bajas");
txt_numero_bajas.setBounds(110, 190+ 20*1, 150, 20);
panel2.add(txt_numero_bajas);

JLabel lbl_codpostal_bajas = new JLabel();
lbl_codpostal_bajas.setBounds(20, 190+20*2, 70, 20);
lbl_codpostal_bajas.setText("Cód. Postal:");
panel2.add(lbl_codpostal_bajas);
txt_codpostal_bajas = new JTextField();
                                                           bitCoach::Juan Bautista Cascallar Lorenzo
txt_codpostal_bajas.setEditable(false);
txt_codpostal_bajas.setName("txt_codpostal_bajas");
txt_codpostal_bajas.setBounds(110, 190+ 20*2, 150, 20);
panel2.add(txt_codpostal_bajas);

//- Botones --
JButton btn_dardebaja_bajas = new JButton("Dar de baja");
btn_dardebaja_bajas.setName("btn_darbaja_bajas");
btn_dardebaja_bajas.addActionListener(this);
btn_dardebaja_bajas.setBounds(50, 280, 180, 20);
panel2.add(btn_dardebaja_bajas);
//======= PESTAÑA BAJAS ========


//======= PESTAÑA MODIFICACIONES ========
//-- Alumnos - Combo Clave
TitledBorder tb_modif_clave = new TitledBorder("Alumnos:");
JLabel etiquetaBorde_modif_combo = new JLabel();
etiquetaBorde_modif_combo.setBorder(tb_modif_clave);
etiquetaBorde_modif_combo.setBounds(10, 10, 260, 50);
panel3.add(etiquetaBorde_modif_combo);

JLabel lbl_clave_modif_combo = new JLabel();
lbl_clave_modif_combo.setBounds(20, 30, 70, 20);
lbl_clave_modif_combo.setText("Clave:");
panel3.add(lbl_clave_modif_combo);

combo_modif = new JComboBox();
combo_modif.setName("combo_modif");
combo_modif.addActionListener(this);
combo_modif.setBounds(110, 30, 150, 20);
panel3.add(combo_modif);

//- Datos Personales -
TitledBorder tb_modif = new TitledBorder("Datos personales:");
JLabel etiquetaBorde_modif = new JLabel();
etiquetaBorde_modif.setBorder(tb_modif);
etiquetaBorde_modif.setBounds(10, 60, 260, 110);
panel3.add(etiquetaBorde_modif);

JLabel lbl_clave_modif = new JLabel();
lbl_clave_modif.setBounds(20, 80, 70, 20);
lbl_clave_modif.setText("Clave:");
panel3.add(lbl_clave_modif);
txt_clave_modif = new JTextField();
txt_clave_modif.setName("txt_clave_modif");
txt_clave_modif.setBounds(110, 80, 150, 20);
txt_clave_modif.setEditable(false);
panel3.add(txt_clave_modif);

JLabel lbl_nombre_modif = new JLabel();
lbl_nombre_modif.setBounds(20, 60+20*2, 70, 20);
lbl_nombre_modif.setText("Nombre:");
panel3.add(lbl_nombre_modif);
txt_nombre_modif = new JTextField();
txt_nombre_modif.setName("txt_nombre_modif");
txt_nombre_modif.setBounds(110, 60+ 20*2, 150, 20);
panel3.add(txt_nombre_modif);

JLabel lbl_apellidos_modif = new JLabel();
lbl_apellidos_modif.setBounds(20, 60+20*3, 70, 20);
lbl_apellidos_modif.setText("Apellidos:");
panel3.add(lbl_apellidos_modif);
txt_apellidos_modif = new JTextField();
txt_apellidos_modif.setName("txt_apellidos_modif");
txt_apellidos_modif.setBounds(110, 60+20*3, 150, 20);
panel3.add(txt_apellidos_modif);

JLabel lbl_edad_modif = new JLabel();
lbl_edad_modif.setBounds(20, 60+20*4, 70, 20);
lbl_edad_modif.setText("Edad:");
panel3.add(lbl_edad_modif);
txt_edad_modif = new JTextField();
txt_edad_modif.setName("txt_edad_modif");
txt_edad_modif.setBounds(110, 60+20*4, 150, 20);
panel3.add(txt_edad_modif);

//- Dirección -
TitledBorder tbD_modif = new TitledBorder("Dirección:");
                                                              bitCoach::Juan Bautista Cascallar Lorenzo
JLabel etiquetaBordeD_modif = new JLabel();
              etiquetaBordeD_modif.setBorder(tbD_modif);
              etiquetaBordeD_modif.setBounds(10, 170, 260, 90);
              panel3.add(etiquetaBordeD_modif);

              JLabel lbl_calle_modif = new JLabel();
              lbl_calle_modif.setBounds(20, 190, 70, 20);
              lbl_calle_modif.setText("Calle:");
              panel3.add(lbl_calle_modif);
              txt_calle_modif = new JTextField();
              txt_calle_modif.setName("txt_calle_modif");
              txt_calle_modif.setBounds(110, 190, 150, 20);
              panel3.add(txt_calle_modif);

              JLabel lbl_numero_modif = new JLabel();
              lbl_numero_modif.setBounds(20, 190+20*1, 70, 20);
              lbl_numero_modif.setText("Número:");
              panel3.add(lbl_numero_modif);
              txt_numero_modif = new JTextField();
              txt_numero_modif.setName("txt_numero_modif");
              txt_numero_modif.setBounds(110, 190+ 20*1, 150, 20);
              panel3.add(txt_numero_modif);

              JLabel lbl_codpostal_modif = new JLabel();
              lbl_codpostal_modif.setBounds(20, 190+20*2, 70, 20);
              lbl_codpostal_modif.setText("Cód. Postal:");
              panel3.add(lbl_codpostal_modif);
              txt_codpostal_modif = new JTextField();
              txt_codpostal_modif.setName("txt_codpostal_modif");
              txt_codpostal_modif.setBounds(110, 190+ 20*2, 150, 20);
              panel3.add(txt_codpostal_modif);

              //- Botones --
              JButton btn_dardebaja_modif = new JButton("Modificar");
              btn_dardebaja_modif.setName("btn_actualizar_modif");
              btn_dardebaja_modif.addActionListener(this);
              btn_dardebaja_modif.setBounds(50, 280, 180, 20);
              panel3.add(btn_dardebaja_modif);

              //======= PESTAÑA MODIFICACIONES ========

              this.setVisible(true);

//=========== INTERFAZ GRÁFICA =======================================

              conexionDDBB obj_conexion = new conexionDDBB();
              this.con = obj_conexion.getConexion();

       }

       //FUNCIONES

       private void limpiar_cajas_altas(){
              //--- Datos personales ---
              txt_clave_altas.setText("");
              txt_nombre_altas.setText("");
              txt_apellidos_altas.setText("");
              txt_edad_altas.setText("");
              //--- Dirección ---
              txt_calle_altas.setText("");
              txt_numero_altas.setText("");
              txt_codpostal_altas.setText("");

       }

       private void limpiar_cajas_bajas(){
              //--- Datos personales ---
              txt_clave_bajas.setText("");
              txt_nombre_bajas.setText("");
              txt_apellidos_bajas.setText("");
              txt_edad_bajas.setText("");
              //--- Dirección ---
              txt_calle_bajas.setText("");
              txt_numero_bajas.setText("");
              txt_codpostal_bajas.setText("");

       }


                                                                         bitCoach::Juan Bautista Cascallar Lorenzo
private void limpiar_cajas_modif(){
              //--- Datos personales ---
              txt_clave_modif.setText("");
              txt_nombre_modif.setText("");
              txt_apellidos_modif.setText("");
              txt_edad_modif.setText("");
              //--- Dirección ---
              txt_calle_modif.setText("");
              txt_numero_modif.setText("");
              txt_codpostal_modif.setText("");

       }

       private void alta_registro(){

              if(txt_clave_altas.getText().isEmpty()){
                     JOptionPane.showMessageDialog(this, "Campo clave vacío....");
              }else{
                     try {
                             PreparedStatement pstmt = con.prepareStatement("select clave from alumnos");
                             ResultSet rs = pstmt.executeQuery();
                             //--- Comprobar clave duplicada ---
                             boolean duplicada = false;
                             while(rs.next()){
                                    if(txt_clave_altas.getText().equals(rs.getString("clave"))){
                                            duplicada = true;
                                            JOptionPane.showMessageDialog(this, "Clave duplicada...");
                                            break;
                                    }
                             }

                               if(duplicada == false){
                                      //Añadir el nuevo registro...

                                       String consulta = "INSERT INTO alumnos " +
                                                      " (clave, nombre, apellidos, edad, calle, numero, codigo) VALUES
" +
                                                     "('" + this.txt_clave_altas.getText() + "','" +
this.txt_nombre_altas.getText() +
                                                     "','" + this.txt_apellidos_altas.getText() + "','" +
                                                     Integer.parseInt(this.txt_edad_altas.getText()) +
                                                     "','" + this.txt_calle_altas.getText() + "','" +
                                                     Integer.parseInt(this.txt_numero_altas.getText()) +
                                                     "','" + this.txt_codpostal_altas.getText() + "')";

                                       pstmt = con.prepareStatement(consulta);
                                       pstmt.executeUpdate();
                                       this.limpiar_cajas_altas();
                               }

                      } catch (SQLException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                      }
              }

       }//Fin function

       private void actualizar_combo(String str_combo){

              try {
                      PreparedStatement pstmt = con.prepareStatement("select clave from alumnos");
                      ResultSet rs = pstmt.executeQuery();

                      if(str_combo.equals("combo_bajas")){
                             combo_bajas.removeAllItems();
                             while(rs.next()){
                                     combo_bajas.addItem(rs.getString(1));
                             }

                               if(combo_bajas.getItemCount() != 0){
                                      //---
                                      mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem());
                               }
                      }else{
                               combo_modif.removeAllItems();
                               while(rs.next()){
                                      combo_modif.addItem(rs.getString(1));
                               }
                                                                              bitCoach::Juan Bautista Cascallar Lorenzo
if(combo_bajas.getItemCount() != 0){
                                     //---
                                     mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem());
                              }else{
                                     limpiar_cajas_modif();
                              }
                       }

              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }

       }//fin function

       private void mostrar_registro_bajas_por_clave(String clave){

               if(clave != null){
                      try {
                              PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '"
+ clave + "'");
                              ResultSet rs = pstmt.executeQuery();

                              rs.next();

                              //--- Datos personales ---
                              txt_clave_bajas.setText(rs.getString("clave"));
                              txt_nombre_bajas.setText(rs.getString("nombre"));
                              txt_apellidos_bajas.setText(rs.getString("apellidos"));
                              txt_edad_bajas.setText(rs.getString("edad"));
                              //--- Dirección ---
                              txt_calle_bajas.setText(rs.getString("calle"));
                              txt_numero_bajas.setText(rs.getString("numero"));
                              txt_codpostal_bajas.setText(rs.getString("codigo"));

                       } catch (SQLException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                       }
              }else{
                       limpiar_cajas_bajas();
              }
       }

       private void mostrar_registro_modif_por_clave(String clave){

               if(clave != null){
                      try {
                              PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '"
+ clave + "'");
                              ResultSet rs = pstmt.executeQuery();

                              rs.next();

                              //--- Datos personales ---
                              txt_clave_modif.setText(rs.getString("clave"));
                              txt_nombre_modif.setText(rs.getString("nombre"));
                              txt_apellidos_modif.setText(rs.getString("apellidos"));
                              txt_edad_modif.setText(rs.getString("edad"));
                              //--- Dirección ---
                              txt_calle_modif.setText(rs.getString("calle"));
                              txt_numero_modif.setText(rs.getString("numero"));
                              txt_codpostal_modif.setText(rs.getString("codigo"));

                       } catch (SQLException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                       }
              }

       }

       private void dardebaja_alumno_por_clave(String clave){


              if(clave != null){
                     String consulta = "delete from alumnos where clave = '" + clave + "'";
                     try {
                                                                           bitCoach::Juan Bautista Cascallar Lorenzo
String mensaje = "¿Borrar alumno: " + clave + "?";
                      String titulo = "Confirmación de Borrado";
                      int respuesta = JOptionPane.showConfirmDialog(this,mensaje,titulo,
                                     JOptionPane.YES_NO_OPTION);
                      if(respuesta == JOptionPane.YES_OPTION){ //SI->0,NO->1,X->-1
                             PreparedStatement pstmt = con.prepareStatement(consulta);
                             pstmt.executeUpdate();
                             actualizar_combo(this.combo_bajas.getName());
                      }

              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
       }

}//Fin function

private void actualizar_alumno_por_clave(String clave){

       if(clave != null){

              String consulta = "update alumnos set nombre = '" + this.txt_nombre_modif.getText() +
              "', apellidos = '" + this.txt_apellidos_modif.getText() +
              "', edad = '" + Integer.parseInt(this.txt_edad_modif.getText()) +
              "', calle = '" + this.txt_calle_modif.getText() +
              "', numero = '" + Integer.parseInt(this.txt_numero_modif.getText()) +
              "', codigo = '" + this.txt_codpostal_modif.getText() +
              "' where clave = '" + clave + "'";

              try {
                      PreparedStatement pstmt = con.prepareStatement(consulta);
                      pstmt.executeUpdate();

                      actualizar_combo(this.combo_modif.getName());

              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
       }

}//Fin function


//--- EVENTOS ---

@Override
public void stateChanged(ChangeEvent e) {
       // TODO Auto-generated method stub

       Object control = e.getSource();

       if(control instanceof JTabbedPane){
              if(((JTabbedPane) control).getName().equals("obj_tabbedPane")){
                      int pestana = ((JTabbedPane) control).getSelectedIndex();
                  switch(pestana){
                          case 0:
                             //--- He pulsado ALTAS ---
                             this.limpiar_cajas_altas();
                             break;
                          case 1:
                             //--- He pulsado BAJAS ---
                             actualizar_combo(this.combo_bajas.getName());
                             break;
                          case 2:
                             //--- He pulsado MODIFICACIONES ---
                             actualizar_combo(this.combo_modif.getName());
                             break;
                  }
              }
       }
}




                                                                      bitCoach::Juan Bautista Cascallar Lorenzo
@Override
public void actionPerformed(ActionEvent arg0) {
       // TODO Auto-generated method stub
       Object control = arg0.getSource();

       if(control instanceof JMenuItem){
              if(((JMenuItem) control).getName().equals("btn_salir")){
                      System.exit(0);
              }

              if(((JMenuItem) control).getName().equals("btn_salvar")){

              }
       }

       if(control instanceof JButton){

              //-- Altas --
              if(((JButton) control).getName().equals("btn_limpiar_altas")){
                     this.limpiar_cajas_altas();
              }

              if(((JButton) control).getName().equals("btn_daralta_altas")){
                     this.alta_registro();
              }

              //-- Bajas --
              if(((JButton) control).getName().equals("btn_darbaja_bajas")){
                     dardebaja_alumno_por_clave((String)combo_bajas.getSelectedItem());
              }

              //-- Modificaciones --
              if(((JButton) control).getName().equals("btn_actualizar_modif")){
                     actualizar_alumno_por_clave((String)combo_modif.getSelectedItem());
              }
       }

       if(control instanceof JComboBox){
              //-- Bajas --
              if(((JComboBox) control).getName().equals("combo_bajas")){
                      mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem());
              }

              //-- Modificaciones --
              if(((JComboBox) control).getName().equals("combo_modif")){
                     mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem());
              }
       }

}

@Override
public void windowActivated(WindowEvent arg0) {
       // TODO Auto-generated method stub

}

@Override
public void windowClosed(WindowEvent arg0) {
       // TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent arg0) {
       // TODO Auto-generated method stub
       System.exit(0);
}

@Override
public void windowDeactivated(WindowEvent arg0) {
       // TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent arg0) {
       // TODO Auto-generated method stub

                                                                   bitCoach::Juan Bautista Cascallar Lorenzo
}

       @Override
       public void windowIconified(WindowEvent arg0) {
              // TODO Auto-generated method stub

       }

       @Override
       public void windowOpened(WindowEvent arg0) {
              // TODO Auto-generated method stub

       }

}


TestGestorAlumnos.java

public class TestGestorAlumnos {

       /**
        * @param args
        */
       public static void main(String[] args) {

              //ATRIBUTOS


              gestorAlumnos GA = new gestorAlumnos();

       }

}




                                                         bitCoach::Juan Bautista Cascallar Lorenzo

Más contenido relacionado

La actualidad más candente (19)

Resumen java
Resumen javaResumen java
Resumen java
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Prac1
Prac1Prac1
Prac1
 
DescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y InterfazDescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y Interfaz
 
1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
Taller interfaz 2
Taller interfaz 2Taller interfaz 2
Taller interfaz 2
 
Programacion ii
Programacion iiProgramacion ii
Programacion ii
 
5 c iterative
5 c iterative5 c iterative
5 c iterative
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Generics
 
Interfaces con Java
Interfaces con JavaInterfaces con Java
Interfaces con Java
 
Java
JavaJava
Java
 
Informe Final Del Proyecto Poo
Informe Final Del Proyecto PooInforme Final Del Proyecto Poo
Informe Final Del Proyecto Poo
 

Similar a Java::Acceso a Bases de Datos

Aplication
AplicationAplication
Aplicationwouyrmz
 
Poo 4 arraylist_implem
Poo 4 arraylist_implemPoo 4 arraylist_implem
Poo 4 arraylist_implemjlmanmons
 
Informe tecnico unidad 2
Informe tecnico unidad 2Informe tecnico unidad 2
Informe tecnico unidad 2Irving Che
 
Informetecnicou2 topicos
Informetecnicou2 topicosInformetecnicou2 topicos
Informetecnicou2 topicosKanddy Mobylml
 
Conexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeansConexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeansjbersosa
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCCarlos Hernando
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosDiroplan
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasNelson Salinas
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion linealThe Killer
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01cursobeta
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 

Similar a Java::Acceso a Bases de Datos (20)

Aplication
AplicationAplication
Aplication
 
Poo 4 arraylist_implem
Poo 4 arraylist_implemPoo 4 arraylist_implem
Poo 4 arraylist_implem
 
Guia5 java
Guia5 javaGuia5 java
Guia5 java
 
Repaso Cods 268
Repaso Cods 268Repaso Cods 268
Repaso Cods 268
 
Presentacion
PresentacionPresentacion
Presentacion
 
Informe tecnico unidad 2
Informe tecnico unidad 2Informe tecnico unidad 2
Informe tecnico unidad 2
 
Informetecnicou2 topicos
Informetecnicou2 topicosInformetecnicou2 topicos
Informetecnicou2 topicos
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Conexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeansConexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeans
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
 
Taller interfaz 3
Taller interfaz 3Taller interfaz 3
Taller interfaz 3
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Patrones utiles para solid
Patrones utiles para solidPatrones utiles para solid
Patrones utiles para solid
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 

Más de jubacalo

jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojubacalo
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jubacalo
 
MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagenjubacalo
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2jubacalo
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBancojubacalo
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Androidjubacalo
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletjubacalo
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DBjubacalo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLjubacalo
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva pagejubacalo
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSPjubacalo
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSPjubacalo
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundojubacalo
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcatjubacalo
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oraclejubacalo
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajaxjubacalo
 
Escenarios
EscenariosEscenarios
Escenariosjubacalo
 
Matrices02
Matrices02Matrices02
Matrices02jubacalo
 

Más de jubacalo (20)

jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.
 
MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagen
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBanco
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Escenarios
EscenariosEscenarios
Escenarios
 
Matrices02
Matrices02Matrices02
Matrices02
 
Gráficos
GráficosGráficos
Gráficos
 

Último

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 

Último (20)

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 

Java::Acceso a Bases de Datos

  • 1. En esta práctica vamos a desarrollar una aplicación de gestión de alumnos (altas, bajas y modificaciones). Como parte de la información de los alumnos está: la clave (que debe ser única), el nombre, los apellidos, la edad y su dirección (consistente en el nombre de la calle, el número y el código postal). El interfaz visual de la aplicación debe ser algo como un frame con tres pestañas. Los paneles de bajas y modificaciones mostrarán en un desplegable todas las claves de los alumnos dados de alta. La persistencia de los datos se hará en un Sistema Gestor de Base de Datos, que contará con una única tabla llamada ALUMNOS cuya definición es:  CLAVE: VARCHAR(4).  NOMBRE: VARCHAR(10).  APELLIDOS: VARCHAR(20).  EDAD: INTEGER.  CALLE: VARCHAR(20).  NUMERO: INTEGER.  CODIGO: VARCHAR(5). bitCoach::Juan Bautista Cascallar Lorenzo
  • 2. Direccion.java import java.io.Serializable; public class Direccion implements Serializable { private static final long serialVersionUID = 1L; //ATRIBUTOS private String calle; private String numero; private String codPostal; //Constructor public Direccion(String calle, String numero, String codPostal){ this.calle = calle; this.numero = numero; this.codPostal = codPostal; } //GETTERS public String getCalle(){ return calle; } public String getNumero(){ return numero; } public String getCodPostal(){ return codPostal; } //SETTERS public void setCalle(String calle){ this.calle = calle; } public void setNumero(String numero){ this.numero = numero; } public void setCodPostal(String codPostal){ this.codPostal = codPostal; } } Alumno.java import java.io.Serializable; public class Alumno implements Serializable { private static final long serialVersionUID = 1L; //ATRIBUTOS //--- Datos Personales --- private String clave; //DNI private String nombre; private String apellidos; private String edad; //--- Dirección --- private Direccion direccion; bitCoach::Juan Bautista Cascallar Lorenzo
  • 3. public Alumno(String clave, String nombre, String apellidos, String edad, String calle, String numero, String codPostal){ this.clave = clave; this.nombre = nombre; this.apellidos = apellidos; direccion = new Direccion(calle, numero, codPostal); } //GETTERS public String getClave(){ return clave; } public String getNombre(){ return nombre; } public String getApellidos(){ return apellidos; } public String getEdad(){ return edad; } public Direccion getDireccion(){ return direccion; } //SETTERS public void setClave(String clave){ this.clave = clave; } public void setNombre(String nombre){ this.nombre = nombre; } public void setApellidos(String apellidos){ this.apellidos = apellidos; } public void setEdad(String edad){ this.edad = edad; } } conexionDDBB.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class conexionDDBB { //ATRIBUTOS private Connection con = null; //CONSTRUCTOR public conexionDDBB(){ try { Class.forName("com.mysql.jdbc.Driver"); try { con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/UNIVERSIDAD","root",""); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } bitCoach::Juan Bautista Cascallar Lorenzo
  • 4. //GETTERS public Connection getConexion(){ return con; } //OTROS MÉTODOS public void cerrarConexion(){ try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } gestorAlumnos.java import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; //------ import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class gestorAlumnos extends JFrame implements ActionListener,WindowListener,ChangeListener { private static final long serialVersionUID = 1L; //ATRIBUTOS Connection con = null; //--- Altas --- JTextField txt_clave_altas = null; JTextField txt_nombre_altas = null; JTextField txt_apellidos_altas = null; JTextField txt_edad_altas = null; JTextField txt_calle_altas = null; JTextField txt_numero_altas = null; JTextField txt_codpostal_altas = null; //--- Bajas --- JComboBox combo_bajas = null; JTextField txt_clave_bajas = null; JTextField txt_nombre_bajas = null; JTextField txt_apellidos_bajas = null; JTextField txt_edad_bajas = null; JTextField txt_calle_bajas = null; JTextField txt_numero_bajas = null; JTextField txt_codpostal_bajas = null; //--- Modificaciones --- JComboBox combo_modif = null; JTextField txt_clave_modif = null; JTextField txt_nombre_modif = null; bitCoach::Juan Bautista Cascallar Lorenzo
  • 5. JTextField txt_apellidos_modif = null; JTextField txt_edad_modif = null; JTextField txt_calle_modif = null; JTextField txt_numero_modif = null; JTextField txt_codpostal_modif = null; //CONSTRUCTOR public gestorAlumnos(){ //=========== INTERFAZ GRÁFICA ======================================= this.setTitle("Gestión de Alumnos"); this.setSize(300, 400); //--- Pestañas --- JTabbedPane obj_tabbedPane = new JTabbedPane(); obj_tabbedPane.setName("obj_tabbedPane"); JPanel panel1 = new JPanel(); panel1.setLayout(null); obj_tabbedPane.addTab("Altas", panel1); JPanel panel2 = new JPanel(); panel2.setLayout(null); obj_tabbedPane.addTab("Bajas", panel2); JPanel panel3 = new JPanel(); panel3.setLayout(null); obj_tabbedPane.addTab("Modificaciones", panel3); this.getContentPane().add(obj_tabbedPane); obj_tabbedPane.addChangeListener(this); //--- Menú --- JMenuBar barraMenu = new JMenuBar(); JMenu menu1 = new JMenu("Fichero"); JMenuItem salvar= new JMenuItem("Salvar"); salvar.setName("btn_salvar"); salvar.addActionListener(this); menu1.add(salvar); JMenuItem salir = new JMenuItem("Salir"); salir.setName("btn_salir"); salir.addActionListener(this); menu1.add(salir); barraMenu.add(menu1); this.setJMenuBar(barraMenu); //======= PESTAÑA ALTAS ======== //- Datos Personales - TitledBorder tb_altas = new TitledBorder("Datos personales:"); JLabel etiquetaBorde_altas = new JLabel(); etiquetaBorde_altas.setBorder(tb_altas); etiquetaBorde_altas.setBounds(10, 10, 260, 110); panel1.add(etiquetaBorde_altas); JLabel lbl_clave_altas = new JLabel(); lbl_clave_altas.setBounds(20, 30, 70, 20); lbl_clave_altas.setText("Clave:"); panel1.add(lbl_clave_altas); txt_clave_altas = new JTextField(); txt_clave_altas.setName("txt_clave_altas"); txt_clave_altas.setBounds(110, 30, 150, 20); panel1.add(txt_clave_altas); JLabel lbl_nombre_altas = new JLabel(); lbl_nombre_altas.setBounds(20, 10+20*2, 70, 20); lbl_nombre_altas.setText("Nombre:"); panel1.add(lbl_nombre_altas); txt_nombre_altas = new JTextField(); txt_nombre_altas.setName("txt_nombre_altas"); txt_nombre_altas.setBounds(110, 10+ 20*2, 150, 20); panel1.add(txt_nombre_altas); JLabel lbl_apellidos_altas = new JLabel(); lbl_apellidos_altas.setBounds(20, 10+20*3, 70, 20); lbl_apellidos_altas.setText("Apellidos:"); panel1.add(lbl_apellidos_altas); txt_apellidos_altas = new JTextField(); txt_apellidos_altas.setName("txt_apellidos_altas"); bitCoach::Juan Bautista Cascallar Lorenzo
  • 6. txt_apellidos_altas.setBounds(110, 10+20*3, 150, 20); panel1.add(txt_apellidos_altas); JLabel lbl_edad_altas = new JLabel(); lbl_edad_altas.setBounds(20, 10+20*4, 70, 20); lbl_edad_altas.setText("Edad:"); panel1.add(lbl_edad_altas); txt_edad_altas = new JTextField(); txt_edad_altas.setName("txt_edad_altas"); txt_edad_altas.setBounds(110, 10+20*4, 150, 20); panel1.add(txt_edad_altas); //- Dirección - TitledBorder tbD_altas = new TitledBorder("Dirección:"); JLabel etiquetaBordeD_altas = new JLabel(); etiquetaBordeD_altas.setBorder(tbD_altas); etiquetaBordeD_altas.setBounds(10, 130, 260, 90); panel1.add(etiquetaBordeD_altas); JLabel lbl_calle_altas = new JLabel(); lbl_calle_altas.setBounds(20, 150, 70, 20); lbl_calle_altas.setText("Calle:"); panel1.add(lbl_calle_altas); txt_calle_altas = new JTextField(); txt_calle_altas.setName("txt_calle_altas"); txt_calle_altas.setBounds(110, 150, 150, 20); panel1.add(txt_calle_altas); JLabel lbl_numero_altas = new JLabel(); lbl_numero_altas.setBounds(20, 150+20*1, 70, 20); lbl_numero_altas.setText("Número:"); panel1.add(lbl_numero_altas); txt_numero_altas = new JTextField(); txt_numero_altas.setName("txt_numero_altas"); txt_numero_altas.setBounds(110, 150+ 20*1, 150, 20); panel1.add(txt_numero_altas); JLabel lbl_codpostal_altas = new JLabel(); lbl_codpostal_altas.setBounds(20, 150+20*2, 70, 20); lbl_codpostal_altas.setText("Cód. Postal:"); panel1.add(lbl_codpostal_altas); txt_codpostal_altas = new JTextField(); txt_codpostal_altas.setName("txt_codpostal_altas"); txt_codpostal_altas.setBounds(110, 150+ 20*2, 150, 20); panel1.add(txt_codpostal_altas); //- Botones -- JButton btn_limpiar_altas = new JButton("Limpiar"); btn_limpiar_altas.setName("btn_limpiar_altas"); btn_limpiar_altas.addActionListener(this); btn_limpiar_altas.setBounds(40, 240, 80, 20); panel1.add(btn_limpiar_altas); JButton btn_daralta_altas = new JButton("Dar de alta"); btn_daralta_altas.setName("btn_daralta_altas"); btn_daralta_altas.addActionListener(this); btn_daralta_altas.setBounds(140, 240, 100, 20); panel1.add(btn_daralta_altas); //======= PESTAÑA ALTAS ======== //======= PESTAÑA BAJAS ======== //-- Alumnos - Combo Clave TitledBorder tb_bajas_clave = new TitledBorder("Alumnos:"); JLabel etiquetaBorde_bajas_combo = new JLabel(); etiquetaBorde_bajas_combo.setBorder(tb_bajas_clave); etiquetaBorde_bajas_combo.setBounds(10, 10, 260, 50); panel2.add(etiquetaBorde_bajas_combo); JLabel lbl_clave_bajas_combo = new JLabel(); lbl_clave_bajas_combo.setBounds(20, 30, 70, 20); lbl_clave_bajas_combo.setText("Clave:"); panel2.add(lbl_clave_bajas_combo); combo_bajas = new JComboBox(); combo_bajas.setName("combo_bajas"); combo_bajas.addActionListener(this); combo_bajas.setBounds(110, 30, 150, 20); panel2.add(combo_bajas); bitCoach::Juan Bautista Cascallar Lorenzo
  • 7. //- Datos Personales - TitledBorder tb_bajas = new TitledBorder("Datos personales:"); JLabel etiquetaBorde_bajas = new JLabel(); etiquetaBorde_bajas.setBorder(tb_bajas); etiquetaBorde_bajas.setBounds(10, 60, 260, 110); panel2.add(etiquetaBorde_bajas); JLabel lbl_clave_bajas = new JLabel(); lbl_clave_bajas.setBounds(20, 80, 70, 20); lbl_clave_bajas.setText("Clave:"); panel2.add(lbl_clave_bajas); txt_clave_bajas = new JTextField(); txt_clave_bajas.setEditable(false); txt_clave_bajas.setName("txt_clave_bajas"); txt_clave_bajas.setBounds(110, 80, 150, 20); panel2.add(txt_clave_bajas); JLabel lbl_nombre_bajas = new JLabel(); lbl_nombre_bajas.setBounds(20, 60+20*2, 70, 20); lbl_nombre_bajas.setText("Nombre:"); panel2.add(lbl_nombre_bajas); txt_nombre_bajas = new JTextField(); txt_nombre_bajas.setEditable(false); txt_nombre_bajas.setName("txt_nombre_bajas"); txt_nombre_bajas.setBounds(110, 60+ 20*2, 150, 20); panel2.add(txt_nombre_bajas); JLabel lbl_apellidos_bajas = new JLabel(); lbl_apellidos_bajas.setBounds(20, 60+20*3, 70, 20); lbl_apellidos_bajas.setText("Apellidos:"); panel2.add(lbl_apellidos_bajas); txt_apellidos_bajas = new JTextField(); txt_apellidos_bajas.setEditable(false); txt_apellidos_bajas.setName("txt_apellidos_bajas"); txt_apellidos_bajas.setBounds(110, 60+20*3, 150, 20); panel2.add(txt_apellidos_bajas); JLabel lbl_edad_bajas = new JLabel(); lbl_edad_bajas.setBounds(20, 60+20*4, 70, 20); lbl_edad_bajas.setText("Edad:"); panel2.add(lbl_edad_bajas); txt_edad_bajas = new JTextField(); txt_edad_bajas.setEditable(false); txt_edad_bajas.setName("txt_edad_bajas"); txt_edad_bajas.setBounds(110, 60+20*4, 150, 20); panel2.add(txt_edad_bajas); //- Dirección - TitledBorder tbD_bajas = new TitledBorder("Dirección:"); JLabel etiquetaBordeD_bajas = new JLabel(); etiquetaBordeD_bajas.setBorder(tbD_bajas); etiquetaBordeD_bajas.setBounds(10, 170, 260, 90); panel2.add(etiquetaBordeD_bajas); JLabel lbl_calle_bajas = new JLabel(); lbl_calle_bajas.setBounds(20, 190, 70, 20); lbl_calle_bajas.setText("Calle:"); panel2.add(lbl_calle_bajas); txt_calle_bajas = new JTextField(); txt_calle_bajas.setEditable(false); txt_calle_bajas.setName("txt_calle_bajas"); txt_calle_bajas.setBounds(110, 190, 150, 20); panel2.add(txt_calle_bajas); JLabel lbl_numero_bajas = new JLabel(); lbl_numero_bajas.setBounds(20, 190+20*1, 70, 20); lbl_numero_bajas.setText("Número:"); panel2.add(lbl_numero_bajas); txt_numero_bajas = new JTextField(); txt_numero_bajas.setEditable(false); txt_numero_bajas.setName("txt_numero_bajas"); txt_numero_bajas.setBounds(110, 190+ 20*1, 150, 20); panel2.add(txt_numero_bajas); JLabel lbl_codpostal_bajas = new JLabel(); lbl_codpostal_bajas.setBounds(20, 190+20*2, 70, 20); lbl_codpostal_bajas.setText("Cód. Postal:"); panel2.add(lbl_codpostal_bajas); txt_codpostal_bajas = new JTextField(); bitCoach::Juan Bautista Cascallar Lorenzo
  • 8. txt_codpostal_bajas.setEditable(false); txt_codpostal_bajas.setName("txt_codpostal_bajas"); txt_codpostal_bajas.setBounds(110, 190+ 20*2, 150, 20); panel2.add(txt_codpostal_bajas); //- Botones -- JButton btn_dardebaja_bajas = new JButton("Dar de baja"); btn_dardebaja_bajas.setName("btn_darbaja_bajas"); btn_dardebaja_bajas.addActionListener(this); btn_dardebaja_bajas.setBounds(50, 280, 180, 20); panel2.add(btn_dardebaja_bajas); //======= PESTAÑA BAJAS ======== //======= PESTAÑA MODIFICACIONES ======== //-- Alumnos - Combo Clave TitledBorder tb_modif_clave = new TitledBorder("Alumnos:"); JLabel etiquetaBorde_modif_combo = new JLabel(); etiquetaBorde_modif_combo.setBorder(tb_modif_clave); etiquetaBorde_modif_combo.setBounds(10, 10, 260, 50); panel3.add(etiquetaBorde_modif_combo); JLabel lbl_clave_modif_combo = new JLabel(); lbl_clave_modif_combo.setBounds(20, 30, 70, 20); lbl_clave_modif_combo.setText("Clave:"); panel3.add(lbl_clave_modif_combo); combo_modif = new JComboBox(); combo_modif.setName("combo_modif"); combo_modif.addActionListener(this); combo_modif.setBounds(110, 30, 150, 20); panel3.add(combo_modif); //- Datos Personales - TitledBorder tb_modif = new TitledBorder("Datos personales:"); JLabel etiquetaBorde_modif = new JLabel(); etiquetaBorde_modif.setBorder(tb_modif); etiquetaBorde_modif.setBounds(10, 60, 260, 110); panel3.add(etiquetaBorde_modif); JLabel lbl_clave_modif = new JLabel(); lbl_clave_modif.setBounds(20, 80, 70, 20); lbl_clave_modif.setText("Clave:"); panel3.add(lbl_clave_modif); txt_clave_modif = new JTextField(); txt_clave_modif.setName("txt_clave_modif"); txt_clave_modif.setBounds(110, 80, 150, 20); txt_clave_modif.setEditable(false); panel3.add(txt_clave_modif); JLabel lbl_nombre_modif = new JLabel(); lbl_nombre_modif.setBounds(20, 60+20*2, 70, 20); lbl_nombre_modif.setText("Nombre:"); panel3.add(lbl_nombre_modif); txt_nombre_modif = new JTextField(); txt_nombre_modif.setName("txt_nombre_modif"); txt_nombre_modif.setBounds(110, 60+ 20*2, 150, 20); panel3.add(txt_nombre_modif); JLabel lbl_apellidos_modif = new JLabel(); lbl_apellidos_modif.setBounds(20, 60+20*3, 70, 20); lbl_apellidos_modif.setText("Apellidos:"); panel3.add(lbl_apellidos_modif); txt_apellidos_modif = new JTextField(); txt_apellidos_modif.setName("txt_apellidos_modif"); txt_apellidos_modif.setBounds(110, 60+20*3, 150, 20); panel3.add(txt_apellidos_modif); JLabel lbl_edad_modif = new JLabel(); lbl_edad_modif.setBounds(20, 60+20*4, 70, 20); lbl_edad_modif.setText("Edad:"); panel3.add(lbl_edad_modif); txt_edad_modif = new JTextField(); txt_edad_modif.setName("txt_edad_modif"); txt_edad_modif.setBounds(110, 60+20*4, 150, 20); panel3.add(txt_edad_modif); //- Dirección - TitledBorder tbD_modif = new TitledBorder("Dirección:"); bitCoach::Juan Bautista Cascallar Lorenzo
  • 9. JLabel etiquetaBordeD_modif = new JLabel(); etiquetaBordeD_modif.setBorder(tbD_modif); etiquetaBordeD_modif.setBounds(10, 170, 260, 90); panel3.add(etiquetaBordeD_modif); JLabel lbl_calle_modif = new JLabel(); lbl_calle_modif.setBounds(20, 190, 70, 20); lbl_calle_modif.setText("Calle:"); panel3.add(lbl_calle_modif); txt_calle_modif = new JTextField(); txt_calle_modif.setName("txt_calle_modif"); txt_calle_modif.setBounds(110, 190, 150, 20); panel3.add(txt_calle_modif); JLabel lbl_numero_modif = new JLabel(); lbl_numero_modif.setBounds(20, 190+20*1, 70, 20); lbl_numero_modif.setText("Número:"); panel3.add(lbl_numero_modif); txt_numero_modif = new JTextField(); txt_numero_modif.setName("txt_numero_modif"); txt_numero_modif.setBounds(110, 190+ 20*1, 150, 20); panel3.add(txt_numero_modif); JLabel lbl_codpostal_modif = new JLabel(); lbl_codpostal_modif.setBounds(20, 190+20*2, 70, 20); lbl_codpostal_modif.setText("Cód. Postal:"); panel3.add(lbl_codpostal_modif); txt_codpostal_modif = new JTextField(); txt_codpostal_modif.setName("txt_codpostal_modif"); txt_codpostal_modif.setBounds(110, 190+ 20*2, 150, 20); panel3.add(txt_codpostal_modif); //- Botones -- JButton btn_dardebaja_modif = new JButton("Modificar"); btn_dardebaja_modif.setName("btn_actualizar_modif"); btn_dardebaja_modif.addActionListener(this); btn_dardebaja_modif.setBounds(50, 280, 180, 20); panel3.add(btn_dardebaja_modif); //======= PESTAÑA MODIFICACIONES ======== this.setVisible(true); //=========== INTERFAZ GRÁFICA ======================================= conexionDDBB obj_conexion = new conexionDDBB(); this.con = obj_conexion.getConexion(); } //FUNCIONES private void limpiar_cajas_altas(){ //--- Datos personales --- txt_clave_altas.setText(""); txt_nombre_altas.setText(""); txt_apellidos_altas.setText(""); txt_edad_altas.setText(""); //--- Dirección --- txt_calle_altas.setText(""); txt_numero_altas.setText(""); txt_codpostal_altas.setText(""); } private void limpiar_cajas_bajas(){ //--- Datos personales --- txt_clave_bajas.setText(""); txt_nombre_bajas.setText(""); txt_apellidos_bajas.setText(""); txt_edad_bajas.setText(""); //--- Dirección --- txt_calle_bajas.setText(""); txt_numero_bajas.setText(""); txt_codpostal_bajas.setText(""); } bitCoach::Juan Bautista Cascallar Lorenzo
  • 10. private void limpiar_cajas_modif(){ //--- Datos personales --- txt_clave_modif.setText(""); txt_nombre_modif.setText(""); txt_apellidos_modif.setText(""); txt_edad_modif.setText(""); //--- Dirección --- txt_calle_modif.setText(""); txt_numero_modif.setText(""); txt_codpostal_modif.setText(""); } private void alta_registro(){ if(txt_clave_altas.getText().isEmpty()){ JOptionPane.showMessageDialog(this, "Campo clave vacío...."); }else{ try { PreparedStatement pstmt = con.prepareStatement("select clave from alumnos"); ResultSet rs = pstmt.executeQuery(); //--- Comprobar clave duplicada --- boolean duplicada = false; while(rs.next()){ if(txt_clave_altas.getText().equals(rs.getString("clave"))){ duplicada = true; JOptionPane.showMessageDialog(this, "Clave duplicada..."); break; } } if(duplicada == false){ //Añadir el nuevo registro... String consulta = "INSERT INTO alumnos " + " (clave, nombre, apellidos, edad, calle, numero, codigo) VALUES " + "('" + this.txt_clave_altas.getText() + "','" + this.txt_nombre_altas.getText() + "','" + this.txt_apellidos_altas.getText() + "','" + Integer.parseInt(this.txt_edad_altas.getText()) + "','" + this.txt_calle_altas.getText() + "','" + Integer.parseInt(this.txt_numero_altas.getText()) + "','" + this.txt_codpostal_altas.getText() + "')"; pstmt = con.prepareStatement(consulta); pstmt.executeUpdate(); this.limpiar_cajas_altas(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//Fin function private void actualizar_combo(String str_combo){ try { PreparedStatement pstmt = con.prepareStatement("select clave from alumnos"); ResultSet rs = pstmt.executeQuery(); if(str_combo.equals("combo_bajas")){ combo_bajas.removeAllItems(); while(rs.next()){ combo_bajas.addItem(rs.getString(1)); } if(combo_bajas.getItemCount() != 0){ //--- mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem()); } }else{ combo_modif.removeAllItems(); while(rs.next()){ combo_modif.addItem(rs.getString(1)); } bitCoach::Juan Bautista Cascallar Lorenzo
  • 11. if(combo_bajas.getItemCount() != 0){ //--- mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem()); }else{ limpiar_cajas_modif(); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }//fin function private void mostrar_registro_bajas_por_clave(String clave){ if(clave != null){ try { PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '" + clave + "'"); ResultSet rs = pstmt.executeQuery(); rs.next(); //--- Datos personales --- txt_clave_bajas.setText(rs.getString("clave")); txt_nombre_bajas.setText(rs.getString("nombre")); txt_apellidos_bajas.setText(rs.getString("apellidos")); txt_edad_bajas.setText(rs.getString("edad")); //--- Dirección --- txt_calle_bajas.setText(rs.getString("calle")); txt_numero_bajas.setText(rs.getString("numero")); txt_codpostal_bajas.setText(rs.getString("codigo")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ limpiar_cajas_bajas(); } } private void mostrar_registro_modif_por_clave(String clave){ if(clave != null){ try { PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '" + clave + "'"); ResultSet rs = pstmt.executeQuery(); rs.next(); //--- Datos personales --- txt_clave_modif.setText(rs.getString("clave")); txt_nombre_modif.setText(rs.getString("nombre")); txt_apellidos_modif.setText(rs.getString("apellidos")); txt_edad_modif.setText(rs.getString("edad")); //--- Dirección --- txt_calle_modif.setText(rs.getString("calle")); txt_numero_modif.setText(rs.getString("numero")); txt_codpostal_modif.setText(rs.getString("codigo")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private void dardebaja_alumno_por_clave(String clave){ if(clave != null){ String consulta = "delete from alumnos where clave = '" + clave + "'"; try { bitCoach::Juan Bautista Cascallar Lorenzo
  • 12. String mensaje = "¿Borrar alumno: " + clave + "?"; String titulo = "Confirmación de Borrado"; int respuesta = JOptionPane.showConfirmDialog(this,mensaje,titulo, JOptionPane.YES_NO_OPTION); if(respuesta == JOptionPane.YES_OPTION){ //SI->0,NO->1,X->-1 PreparedStatement pstmt = con.prepareStatement(consulta); pstmt.executeUpdate(); actualizar_combo(this.combo_bajas.getName()); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//Fin function private void actualizar_alumno_por_clave(String clave){ if(clave != null){ String consulta = "update alumnos set nombre = '" + this.txt_nombre_modif.getText() + "', apellidos = '" + this.txt_apellidos_modif.getText() + "', edad = '" + Integer.parseInt(this.txt_edad_modif.getText()) + "', calle = '" + this.txt_calle_modif.getText() + "', numero = '" + Integer.parseInt(this.txt_numero_modif.getText()) + "', codigo = '" + this.txt_codpostal_modif.getText() + "' where clave = '" + clave + "'"; try { PreparedStatement pstmt = con.prepareStatement(consulta); pstmt.executeUpdate(); actualizar_combo(this.combo_modif.getName()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//Fin function //--- EVENTOS --- @Override public void stateChanged(ChangeEvent e) { // TODO Auto-generated method stub Object control = e.getSource(); if(control instanceof JTabbedPane){ if(((JTabbedPane) control).getName().equals("obj_tabbedPane")){ int pestana = ((JTabbedPane) control).getSelectedIndex(); switch(pestana){ case 0: //--- He pulsado ALTAS --- this.limpiar_cajas_altas(); break; case 1: //--- He pulsado BAJAS --- actualizar_combo(this.combo_bajas.getName()); break; case 2: //--- He pulsado MODIFICACIONES --- actualizar_combo(this.combo_modif.getName()); break; } } } } bitCoach::Juan Bautista Cascallar Lorenzo
  • 13. @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub Object control = arg0.getSource(); if(control instanceof JMenuItem){ if(((JMenuItem) control).getName().equals("btn_salir")){ System.exit(0); } if(((JMenuItem) control).getName().equals("btn_salvar")){ } } if(control instanceof JButton){ //-- Altas -- if(((JButton) control).getName().equals("btn_limpiar_altas")){ this.limpiar_cajas_altas(); } if(((JButton) control).getName().equals("btn_daralta_altas")){ this.alta_registro(); } //-- Bajas -- if(((JButton) control).getName().equals("btn_darbaja_bajas")){ dardebaja_alumno_por_clave((String)combo_bajas.getSelectedItem()); } //-- Modificaciones -- if(((JButton) control).getName().equals("btn_actualizar_modif")){ actualizar_alumno_por_clave((String)combo_modif.getSelectedItem()); } } if(control instanceof JComboBox){ //-- Bajas -- if(((JComboBox) control).getName().equals("combo_bajas")){ mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem()); } //-- Modificaciones -- if(((JComboBox) control).getName().equals("combo_modif")){ mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem()); } } } @Override public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent arg0) { // TODO Auto-generated method stub System.exit(0); } @Override public void windowDeactivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub bitCoach::Juan Bautista Cascallar Lorenzo
  • 14. } @Override public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub } } TestGestorAlumnos.java public class TestGestorAlumnos { /** * @param args */ public static void main(String[] args) { //ATRIBUTOS gestorAlumnos GA = new gestorAlumnos(); } } bitCoach::Juan Bautista Cascallar Lorenzo