Panel de Estudiante con TipologiaSexo

This commit is contained in:
2025-04-06 17:24:45 +02:00
parent ce1462dd73
commit f1d0a613a7
8 changed files with 140 additions and 26 deletions

View File

@@ -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);

View File

@@ -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<TipologiaSexo> getAllSexos() {
Connection conn = GestorConexiones.getConexion();
List<TipologiaSexo> 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;
}
}

View File

@@ -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);
}
}

View File

@@ -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 +
'}';
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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));
}
}

View File

@@ -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<TipologiaSexo> 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<TipologiaSexo> 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);
}
}
}