From f1d0a613a79a581828555465bedcbc0c61a3dba1 Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Sun, 6 Apr 2025 17:24:45 +0200 Subject: [PATCH] Panel de Estudiante con TipologiaSexo --- .../controlador/ControladorEstudiante.java | 20 ++++--- .../controlador/ControladorTipologiaSexo.java | 31 ++++++++++ .../java/net/h4ckx0r/modelo/Estudiante.java | 4 +- src/main/java/net/h4ckx0r/modelo/Persona.java | 13 +++- .../java/net/h4ckx0r/modelo/Profesor.java | 4 +- .../net/h4ckx0r/modelo/TipologiaSexo.java | 32 ++++++++++ src/main/java/net/h4ckx0r/vista/MainView.java | 2 +- .../h4ckx0r/vista/panels/PanelPersona.java | 60 +++++++++++++++---- 8 files changed, 140 insertions(+), 26 deletions(-) create mode 100644 src/main/java/net/h4ckx0r/controlador/ControladorTipologiaSexo.java create mode 100644 src/main/java/net/h4ckx0r/modelo/TipologiaSexo.java diff --git a/src/main/java/net/h4ckx0r/controlador/ControladorEstudiante.java b/src/main/java/net/h4ckx0r/controlador/ControladorEstudiante.java index 24e85e2..5264b33 100644 --- a/src/main/java/net/h4ckx0r/controlador/ControladorEstudiante.java +++ b/src/main/java/net/h4ckx0r/controlador/ControladorEstudiante.java @@ -21,7 +21,8 @@ public class ControladorEstudiante { rs.getString("dni"), rs.getString("direccion"), rs.getString("email"), - rs.getString("telefono") + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") ); } @@ -48,7 +49,8 @@ public class ControladorEstudiante { rs.getString("dni"), rs.getString("direccion"), rs.getString("email"), - rs.getString("telefono") + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") ); } @@ -75,7 +77,8 @@ public class ControladorEstudiante { rs.getString("dni"), rs.getString("direccion"), rs.getString("email"), - rs.getString("telefono") + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") ); } @@ -103,7 +106,8 @@ public class ControladorEstudiante { rs.getString("dni"), rs.getString("direccion"), rs.getString("email"), - rs.getString("telefono") + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") ); } @@ -134,7 +138,7 @@ public class ControladorEstudiante { } Connection conn = GestorConexiones.getConexion(); try { - PreparedStatement pst = conn.prepareStatement("UPDATE estudiante SET descripcion = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ? WHERE id = ?"); + PreparedStatement pst = conn.prepareStatement("UPDATE estudiante SET nombre = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ?, idTipologiaSexo = ? WHERE id = ?"); pst.setString(1, estudiante.getNombre()); pst.setString(2, estudiante.getApellido1()); pst.setString(3, estudiante.getApellido2()); @@ -142,7 +146,8 @@ public class ControladorEstudiante { pst.setString(5, estudiante.getDireccion()); pst.setString(6, estudiante.getEmail()); pst.setString(7, estudiante.getTelefono()); - pst.setInt(8, estudiante.getId()); + pst.setInt(8, estudiante.getIdTipologiaSexo()); + pst.setInt(9, estudiante.getId()); return pst.executeUpdate(); } catch (SQLException e) { return 0; @@ -153,7 +158,7 @@ public class ControladorEstudiante { public static int nuevoEstudiante(Estudiante estudiante) { Connection conn = GestorConexiones.getConexion(); try { - PreparedStatement pst = conn.prepareStatement("INSERT INTO estudiante (id,nombre,apellido1,apellido2,dni,direccion,email,telefono) VALUES (?,?,?,?,?,?)"); + PreparedStatement pst = conn.prepareStatement("INSERT INTO estudiante (id,nombre,apellido1,apellido2,dni,direccion,email,telefono,idTipologiaSexo) VALUES (?,?,?,?,?,?,?)"); pst.setInt(1, estudiante.getId()); pst.setString(2, estudiante.getNombre()); pst.setString(3, estudiante.getApellido1()); @@ -162,6 +167,7 @@ public class ControladorEstudiante { pst.setString(6, estudiante.getDireccion()); pst.setString(7, estudiante.getEmail()); pst.setString(8, estudiante.getTelefono()); + pst.setInt(9, estudiante.getIdTipologiaSexo()); return pst.executeUpdate(); } catch (SQLException e) { throw new RuntimeException(e); diff --git a/src/main/java/net/h4ckx0r/controlador/ControladorTipologiaSexo.java b/src/main/java/net/h4ckx0r/controlador/ControladorTipologiaSexo.java new file mode 100644 index 0000000..b7ac9f3 --- /dev/null +++ b/src/main/java/net/h4ckx0r/controlador/ControladorTipologiaSexo.java @@ -0,0 +1,31 @@ +package net.h4ckx0r.controlador; + +import net.h4ckx0r.modelo.TipologiaSexo; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +public class ControladorTipologiaSexo { + public static List getAllSexos() { + Connection conn = GestorConexiones.getConexion(); + List sexos = new ArrayList<>(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM tipologiaSexo"); + + while (rs.next()) { + sexos.add(new TipologiaSexo(rs.getInt("id"), rs.getString("descripcion"))); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return sexos; + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/Estudiante.java b/src/main/java/net/h4ckx0r/modelo/Estudiante.java index 45b342d..627327b 100644 --- a/src/main/java/net/h4ckx0r/modelo/Estudiante.java +++ b/src/main/java/net/h4ckx0r/modelo/Estudiante.java @@ -2,7 +2,7 @@ package net.h4ckx0r.modelo; public class Estudiante extends Persona { - public Estudiante(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono) { - super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono); + public Estudiante(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo) { + super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono, idTipologiaSexo); } } diff --git a/src/main/java/net/h4ckx0r/modelo/Persona.java b/src/main/java/net/h4ckx0r/modelo/Persona.java index 1b8d044..a1d860d 100644 --- a/src/main/java/net/h4ckx0r/modelo/Persona.java +++ b/src/main/java/net/h4ckx0r/modelo/Persona.java @@ -9,8 +9,9 @@ public class Persona { private String direccion; private String email; private String telefono; + private int idTipologiaSexo; - public Persona(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono) { + public Persona(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo) { this.id = id; this.nombre = nombre; this.apellido1 = apellido1; @@ -19,6 +20,7 @@ public class Persona { this.direccion = direccion; this.email = email; this.telefono = telefono; + this.idTipologiaSexo = idTipologiaSexo; } public int getId() { @@ -85,6 +87,14 @@ public class Persona { this.telefono = telefono; } + public int getIdTipologiaSexo() { + return idTipologiaSexo; + } + + public void setIdTipologiaSexo(int idTipologiaSexo) { + this.idTipologiaSexo = idTipologiaSexo; + } + @Override public String toString() { return "Persona{" + @@ -96,6 +106,7 @@ public class Persona { ", direccion='" + direccion + '\'' + ", email='" + email + '\'' + ", telefono='" + telefono + '\'' + + ", idTipologiaSexo=" + idTipologiaSexo + '}'; } } diff --git a/src/main/java/net/h4ckx0r/modelo/Profesor.java b/src/main/java/net/h4ckx0r/modelo/Profesor.java index 12d1a73..3e89444 100644 --- a/src/main/java/net/h4ckx0r/modelo/Profesor.java +++ b/src/main/java/net/h4ckx0r/modelo/Profesor.java @@ -1,7 +1,7 @@ package net.h4ckx0r.modelo; public class Profesor extends Persona{ - public Profesor(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono) { - super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono); + public Profesor(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo) { + super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono, idTipologiaSexo); } } diff --git a/src/main/java/net/h4ckx0r/modelo/TipologiaSexo.java b/src/main/java/net/h4ckx0r/modelo/TipologiaSexo.java new file mode 100644 index 0000000..0bda546 --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/TipologiaSexo.java @@ -0,0 +1,32 @@ +package net.h4ckx0r.modelo; + +public class TipologiaSexo { + private int id; + private String descripcion; + + public TipologiaSexo(int id, String descripcion) { + this.id = id; + this.descripcion = descripcion; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + @Override + public String toString() { + return descripcion; + } +} diff --git a/src/main/java/net/h4ckx0r/vista/MainView.java b/src/main/java/net/h4ckx0r/vista/MainView.java index acb8718..90963eb 100644 --- a/src/main/java/net/h4ckx0r/vista/MainView.java +++ b/src/main/java/net/h4ckx0r/vista/MainView.java @@ -259,7 +259,7 @@ public class MainView extends JFrame { } else if (tabbedPane.getSelectedComponent() == panelMaterias) { panelMaterias.setMateriaActual(new Materia(-1, "", "", -1)); } else if (tabbedPane.getSelectedComponent() == panelEstudiantes) { - panelEstudiantes.setEstudianteActual(new Estudiante(-1, "", "", "", "", "", "", "")); + panelEstudiantes.setEstudianteActual(new Estudiante(-1, "", "", "", "", "", "", "", -1)); } } diff --git a/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java b/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java index 8e1f1ec..ef8940a 100644 --- a/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java +++ b/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java @@ -1,13 +1,14 @@ package net.h4ckx0r.vista.panels; -import net.h4ckx0r.modelo.Estudiante; -import net.h4ckx0r.modelo.Persona; -import net.h4ckx0r.modelo.Profesor; +import net.h4ckx0r.controlador.ControladorCurso; +import net.h4ckx0r.controlador.ControladorTipologiaSexo; +import net.h4ckx0r.modelo.*; import javax.swing.*; import java.awt.GridBagLayout; import java.awt.GridBagConstraints; import java.awt.Insets; +import java.util.List; public class PanelPersona extends JPanel { @@ -22,6 +23,7 @@ public class PanelPersona extends JPanel { private JTextField tfDireccion; private JTextField tfEmail; private JTextField tfTelefono; + private JComboBox comboBoxSexo; /** * Create the panel. @@ -29,9 +31,9 @@ public class PanelPersona extends JPanel { public PanelPersona() { GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[]{0, 0, 0}; - gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0}; + gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; gridBagLayout.columnWeights = new double[]{0.2, 1.0, Double.MIN_VALUE}; - gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; + gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; setLayout(gridBagLayout); JLabel lblNewLabel = new JLabel("Nombre:"); @@ -85,12 +87,28 @@ public class PanelPersona extends JPanel { add(tfApellido2, gbc_textField_2); tfApellido2.setColumns(10); + JLabel lblNewLabel_7 = new JLabel("Sexo:"); + GridBagConstraints gbc_lblNewLabel_7 = new GridBagConstraints(); + gbc_lblNewLabel_7.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_7.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_7.gridx = 0; + gbc_lblNewLabel_7.gridy = 3; + add(lblNewLabel_7, gbc_lblNewLabel_7); + + comboBoxSexo = new JComboBox<>(); + GridBagConstraints gbc_comboBoxSexo = new GridBagConstraints(); + gbc_comboBoxSexo.insets = new Insets(0, 0, 5, 0); + gbc_comboBoxSexo.fill = GridBagConstraints.HORIZONTAL; + gbc_comboBoxSexo.gridx = 1; + gbc_comboBoxSexo.gridy = 3; + add(comboBoxSexo, gbc_comboBoxSexo); + JLabel lblNewLabel_3 = new JLabel("DNI:"); GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints(); gbc_lblNewLabel_3.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_3.gridx = 0; - gbc_lblNewLabel_3.gridy = 3; + gbc_lblNewLabel_3.gridy = 4; add(lblNewLabel_3, gbc_lblNewLabel_3); tfDNI = new JTextField(); @@ -98,7 +116,7 @@ public class PanelPersona extends JPanel { gbc_textField_3.insets = new Insets(0, 0, 5, 0); gbc_textField_3.fill = GridBagConstraints.HORIZONTAL; gbc_textField_3.gridx = 1; - gbc_textField_3.gridy = 3; + gbc_textField_3.gridy = 4; add(tfDNI, gbc_textField_3); tfDNI.setColumns(10); @@ -107,7 +125,7 @@ public class PanelPersona extends JPanel { gbc_lblNewLabel_4.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_4.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_4.gridx = 0; - gbc_lblNewLabel_4.gridy = 4; + gbc_lblNewLabel_4.gridy = 5; add(lblNewLabel_4, gbc_lblNewLabel_4); tfDireccion = new JTextField(); @@ -115,7 +133,7 @@ public class PanelPersona extends JPanel { gbc_textField_4.insets = new Insets(0, 0, 5, 0); gbc_textField_4.fill = GridBagConstraints.HORIZONTAL; gbc_textField_4.gridx = 1; - gbc_textField_4.gridy = 4; + gbc_textField_4.gridy = 5; add(tfDireccion, gbc_textField_4); tfDireccion.setColumns(10); @@ -124,7 +142,7 @@ public class PanelPersona extends JPanel { gbc_lblNewLabel_5.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_5.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_5.gridx = 0; - gbc_lblNewLabel_5.gridy = 5; + gbc_lblNewLabel_5.gridy = 6; add(lblNewLabel_5, gbc_lblNewLabel_5); tfEmail = new JTextField(); @@ -132,7 +150,7 @@ public class PanelPersona extends JPanel { gbc_textField_5.insets = new Insets(0, 0, 5, 0); gbc_textField_5.fill = GridBagConstraints.HORIZONTAL; gbc_textField_5.gridx = 1; - gbc_textField_5.gridy = 5; + gbc_textField_5.gridy = 6; add(tfEmail, gbc_textField_5); tfEmail.setColumns(10); @@ -141,7 +159,7 @@ public class PanelPersona extends JPanel { gbc_lblNewLabel_6.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_6.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_6.gridx = 0; - gbc_lblNewLabel_6.gridy = 6; + gbc_lblNewLabel_6.gridy = 7; add(lblNewLabel_6, gbc_lblNewLabel_6); tfTelefono = new JTextField(); @@ -149,7 +167,7 @@ public class PanelPersona extends JPanel { gbc_textField_6.insets = new Insets(0, 0, 5, 0); gbc_textField_6.fill = GridBagConstraints.HORIZONTAL; gbc_textField_6.gridx = 1; - gbc_textField_6.gridy = 6; + gbc_textField_6.gridy = 7; add(tfTelefono, gbc_textField_6); tfTelefono.setColumns(10); @@ -164,12 +182,14 @@ public class PanelPersona extends JPanel { tfEmail.setText(persona.getEmail()); tfTelefono.setText(persona.getTelefono()); personaActual = persona; + actualizarSexo(); } private Persona getPersona() { personaActual.setNombre(tfNombre.getText()); personaActual.setApellido1(tfApellido1.getText()); personaActual.setApellido2(tfApellido2.getText()); + personaActual.setIdTipologiaSexo(((TipologiaSexo) comboBoxSexo.getSelectedItem()).getId()); personaActual.setDni(tfDNI.getText()); personaActual.setDireccion(tfDireccion.getText()); personaActual.setEmail(tfEmail.getText()); @@ -193,4 +213,18 @@ public class PanelPersona extends JPanel { return (Profesor) getPersona(); } + private void actualizarSexo() { + List sexos = ControladorTipologiaSexo.getAllSexos(); + comboBoxSexo.removeAllItems(); + for (TipologiaSexo sexo : sexos) { + comboBoxSexo.addItem(sexo); + if (personaActual.getIdTipologiaSexo() == sexo.getId()) { + comboBoxSexo.setSelectedItem(sexo); + } + } + if (personaActual.getIdTipologiaSexo() == -1) { + comboBoxSexo.setSelectedIndex(-1); + } + } + }