Panel de Estudiante

This commit is contained in:
2025-04-03 18:16:27 +02:00
parent 31c274cd04
commit ce1462dd73
5 changed files with 314 additions and 32 deletions

View File

@@ -123,7 +123,7 @@ public class ControladorCurso {
public static int guardarCurso(Curso curso) { public static int guardarCurso(Curso curso) {
if (curso.getId() == -1) { if (curso.getId() == -1) {
curso.setId(ControladorCurso.getUltimoCurso().getId() + 1); curso.setId(getUltimoCurso().getId() + 1);
return nuevoCurso(curso); return nuevoCurso(curso);
} }
Connection conn = GestorConexiones.getConexion(); Connection conn = GestorConexiones.getConexion();
@@ -133,7 +133,8 @@ public class ControladorCurso {
pst.setInt(2, curso.getId()); pst.setInt(2, curso.getId());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); return 0;
//throw new RuntimeException(e);
} }
} }
@@ -156,7 +157,8 @@ public class ControladorCurso {
pst.setInt(1, curso.getId()); pst.setInt(1, curso.getId());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); return 0;
//throw new RuntimeException(e);
} }
} }
} }

View File

@@ -0,0 +1,170 @@
package net.h4ckx0r.controlador;
import net.h4ckx0r.modelo.Estudiante;
import java.sql.*;
public class ControladorEstudiante {
public static Estudiante getPrimerEstudiante() {
Connection conn = GestorConexiones.getConexion();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM estudiante LIMIT 1");
if (rs.next()) {
return new Estudiante(
rs.getInt("id"),
rs.getString("nombre"),
rs.getString("apellido1"),
rs.getString("apellido2"),
rs.getString("dni"),
rs.getString("direccion"),
rs.getString("email"),
rs.getString("telefono")
);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
public static Estudiante getUltimoEstudiante() {
Connection conn = GestorConexiones.getConexion();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM estudiante ORDER BY id DESC LIMIT 1");
if (rs.next()) {
return new Estudiante(
rs.getInt("id"),
rs.getString("nombre"),
rs.getString("apellido1"),
rs.getString("apellido2"),
rs.getString("dni"),
rs.getString("direccion"),
rs.getString("email"),
rs.getString("telefono")
);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
public static Estudiante getSiguienteEstudiante(Estudiante estudianteActual) {
Connection conn = GestorConexiones.getConexion();
try {
PreparedStatement pst = conn.prepareStatement("SELECT * FROM estudiante WHERE id > ? LIMIT 1");
pst.setInt(1, estudianteActual.getId());
ResultSet rs = pst.executeQuery();
if (rs.next()) {
return new Estudiante(
rs.getInt("id"),
rs.getString("nombre"),
rs.getString("apellido1"),
rs.getString("apellido2"),
rs.getString("dni"),
rs.getString("direccion"),
rs.getString("email"),
rs.getString("telefono")
);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
public static Estudiante getAnteriorEstudiante(Estudiante estudianteActual) {
Connection conn = GestorConexiones.getConexion();
try {
PreparedStatement pst = conn.prepareStatement("SELECT * FROM estudiante WHERE id < ? ORDER BY id DESC LIMIT 1");
pst.setInt(1, estudianteActual.getId());
ResultSet rs = pst.executeQuery();
if (rs.next()) {
return new Estudiante(
rs.getInt("id"),
rs.getString("nombre"),
rs.getString("apellido1"),
rs.getString("apellido2"),
rs.getString("dni"),
rs.getString("direccion"),
rs.getString("email"),
rs.getString("telefono")
);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return null;
}
public static int borrarEstudiante(Estudiante estudiante) {
Connection conn = GestorConexiones.getConexion();
try {
PreparedStatement pst = conn.prepareStatement("DELETE FROM estudiante WHERE id = ?");
pst.setInt(1, estudiante.getId());
return pst.executeUpdate();
} catch (SQLException e) {
return 0;
//throw new RuntimeException(e);
}
}
public static int guardarEstudiante(Estudiante estudiante) {
if (estudiante.getId() == -1) {
estudiante.setId(getUltimoEstudiante().getId() + 1);
return nuevoEstudiante(estudiante);
}
Connection conn = GestorConexiones.getConexion();
try {
PreparedStatement pst = conn.prepareStatement("UPDATE estudiante SET descripcion = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ? WHERE id = ?");
pst.setString(1, estudiante.getNombre());
pst.setString(2, estudiante.getApellido1());
pst.setString(3, estudiante.getApellido2());
pst.setString(4, estudiante.getDni());
pst.setString(5, estudiante.getDireccion());
pst.setString(6, estudiante.getEmail());
pst.setString(7, estudiante.getTelefono());
pst.setInt(8, estudiante.getId());
return pst.executeUpdate();
} catch (SQLException e) {
return 0;
//throw new RuntimeException(e);
}
}
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 (?,?,?,?,?,?)");
pst.setInt(1, estudiante.getId());
pst.setString(2, estudiante.getNombre());
pst.setString(3, estudiante.getApellido1());
pst.setString(4, estudiante.getApellido2());
pst.setString(5, estudiante.getDni());
pst.setString(6, estudiante.getDireccion());
pst.setString(7, estudiante.getEmail());
pst.setString(8, estudiante.getTelefono());
return pst.executeUpdate();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}

View File

@@ -87,13 +87,14 @@ public class ControladorMateria {
pst.setInt(1, materiaActual.getId()); pst.setInt(1, materiaActual.getId());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); return 0;
//throw new RuntimeException(e);
} }
} }
public static int guardarMateria(Materia materia) { public static int guardarMateria(Materia materia) {
if (materia.getId() == -1) { if (materia.getId() == -1) {
materia.setId(ControladorMateria.getUltimaMateria().getId() + 1); materia.setId(getUltimaMateria().getId() + 1);
return nuevaMateria(materia); return nuevaMateria(materia);
} }
Connection conn = GestorConexiones.getConexion(); Connection conn = GestorConexiones.getConexion();
@@ -105,7 +106,8 @@ public class ControladorMateria {
pst.setInt(4, materia.getId()); pst.setInt(4, materia.getId());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); return 0;
//throw new RuntimeException(e);
} }
} }

View File

@@ -1,8 +1,10 @@
package net.h4ckx0r.vista; package net.h4ckx0r.vista;
import net.h4ckx0r.controlador.ControladorCurso; import net.h4ckx0r.controlador.ControladorCurso;
import net.h4ckx0r.controlador.ControladorEstudiante;
import net.h4ckx0r.controlador.ControladorMateria; import net.h4ckx0r.controlador.ControladorMateria;
import net.h4ckx0r.modelo.Curso; import net.h4ckx0r.modelo.Curso;
import net.h4ckx0r.modelo.Estudiante;
import net.h4ckx0r.modelo.Materia; import net.h4ckx0r.modelo.Materia;
import net.h4ckx0r.vista.panels.PanelCursos; import net.h4ckx0r.vista.panels.PanelCursos;
import net.h4ckx0r.vista.panels.PanelMaterias; import net.h4ckx0r.vista.panels.PanelMaterias;
@@ -15,10 +17,6 @@ import javax.swing.*;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ComponentAdapter; import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent; import java.awt.event.ComponentEvent;
@@ -66,9 +64,10 @@ public class MainView extends JFrame {
MainView frame = new MainView(); MainView frame = new MainView();
frame.panelCursos.setCursoActual(ControladorCurso.getPrimerCurso()); frame.panelCursos.setCursoActual(ControladorCurso.getPrimerCurso());
frame.panelMaterias.setMateriaActual(ControladorMateria.getPrimeraMateria()); frame.panelMaterias.setMateriaActual(ControladorMateria.getPrimeraMateria());
frame.panelEstudiantes.setEstudianteActual(ControladorEstudiante.getPrimerEstudiante());
frame.actualizarPantalla(); frame.actualizarBotonesPantalla();
frame.setVisible(true); frame.setVisible(true);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@@ -214,6 +213,36 @@ public class MainView extends JFrame {
tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane = new JTabbedPane(JTabbedPane.TOP);
contentPane.add(tabbedPane, BorderLayout.CENTER); contentPane.add(tabbedPane, BorderLayout.CENTER);
panelCursos.addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent e) {
actualizarBotonesPantalla();
}
});
panelMaterias.addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent e) {
actualizarBotonesPantalla();
}
});
panelEstudiantes.addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent e) {
actualizarBotonesPantalla();
}
});
panelProfesores.addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent e) {
actualizarBotonesPantalla();
}
});
panelValoracionMaterias.addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent e) {
actualizarBotonesPantalla();
}
});
tabbedPane.addTab("Cursos", iconCursos, panelCursos, null); tabbedPane.addTab("Cursos", iconCursos, panelCursos, null);
tabbedPane.addTab("Materias", iconMaterias, panelMaterias, null); tabbedPane.addTab("Materias", iconMaterias, panelMaterias, null);
@@ -229,21 +258,60 @@ public class MainView extends JFrame {
panelCursos.setCursoActual(new Curso(-1, "")); panelCursos.setCursoActual(new Curso(-1, ""));
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
panelMaterias.setMateriaActual(new Materia(-1, "", "", -1)); panelMaterias.setMateriaActual(new Materia(-1, "", "", -1));
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
panelEstudiantes.setEstudianteActual(new Estudiante(-1, "", "", "", "", "", "", ""));
} }
} }
private void borrarRegistro() { private void borrarRegistro() {
if (JOptionPane.showConfirmDialog(this, "¿Desea borrar el registro?", "¿Está seguro?", JOptionPane.YES_NO_OPTION) != 0) {
if (JOptionPane.showConfirmDialog(this, "¿Desea borrar el registro?", "¿Está seguro?", JOptionPane.YES_NO_OPTION) == 0) {
return; return;
} }
int resultado = 0; int resultado = 0;
if (tabbedPane.getSelectedComponent() == panelCursos) { if (tabbedPane.getSelectedComponent() == panelCursos) {
Curso cursoSiguiente = ControladorCurso.getSiguienteCurso(panelCursos.getCursoActual());
Curso cursoAnterior = ControladorCurso.getAnteriorCurso(panelCursos.getCursoActual());
resultado = ControladorCurso.borrarCurso(panelCursos.getCursoActual()); resultado = ControladorCurso.borrarCurso(panelCursos.getCursoActual());
if (resultado > 0) {
if (cursoSiguiente != null) {
panelCursos.setCursoActual(cursoSiguiente);
} else if (cursoAnterior != null) {
panelCursos.setCursoActual(cursoAnterior);
} else {
agregarRegistro();
}
}
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
Materia materiaSiguiente = ControladorMateria.getSiguienteMateria(panelMaterias.getMateriaActual());
Materia materiaAnterior = ControladorMateria.getAnteriorMateria(panelMaterias.getMateriaActual());
resultado = ControladorMateria.borrarMateria(panelMaterias.getMateriaActual()); resultado = ControladorMateria.borrarMateria(panelMaterias.getMateriaActual());
if (resultado > 0) {
if (materiaSiguiente != null) {
panelMaterias.setMateriaActual(materiaSiguiente);
} else if (materiaAnterior != null) {
panelMaterias.setMateriaActual(materiaAnterior);
} else {
agregarRegistro();
}
}
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
Estudiante estudianteSiguiente = ControladorEstudiante.getSiguienteEstudiante(panelEstudiantes.getEstudianteActual());
Estudiante estudianteAnterior = ControladorEstudiante.getAnteriorEstudiante(panelEstudiantes.getEstudianteActual());
resultado = ControladorEstudiante.borrarEstudiante(panelEstudiantes.getEstudianteActual());
if (resultado > 0) {
if (estudianteSiguiente != null) {
panelEstudiantes.setEstudianteActual(estudianteSiguiente);
} else if (estudianteAnterior != null) {
panelEstudiantes.setEstudianteActual(estudianteAnterior);
} else {
agregarRegistro();
}
}
} }
if (resultado > 0) { if (resultado > 0) {
@@ -255,14 +323,19 @@ public class MainView extends JFrame {
} }
private void guardarRegistro() { private void guardarRegistro() {
int resultado = 0;
if (tabbedPane.getSelectedComponent() == panelCursos) { if (tabbedPane.getSelectedComponent() == panelCursos) {
if (ControladorCurso.guardarCurso(panelCursos.getCursoActual()) > 0) { resultado = ControladorCurso.guardarCurso(panelCursos.getCursoActual());
JOptionPane.showMessageDialog(this, "Registro guardado correctamente");
}
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
if (ControladorMateria.guardarMateria(panelMaterias.getMateriaActual()) > 0) { resultado = ControladorMateria.guardarMateria(panelMaterias.getMateriaActual());
JOptionPane.showMessageDialog(this, "Registro guardado correctamente"); } else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
resultado = ControladorEstudiante.guardarEstudiante(panelEstudiantes.getEstudianteActual());
} }
if (resultado > 0) {
JOptionPane.showMessageDialog(this, "Registro guardado correctamente");
} else {
JOptionPane.showMessageDialog(this, "No se pudo guardar el registro");
} }
@@ -274,13 +347,19 @@ public class MainView extends JFrame {
Curso primerCurso = ControladorCurso.getPrimerCurso(); Curso primerCurso = ControladorCurso.getPrimerCurso();
if (primerCurso != null) { if (primerCurso != null) {
panelCursos.setCursoActual(primerCurso); panelCursos.setCursoActual(primerCurso);
actualizarPantalla(); actualizarBotonesPantalla();
} }
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
Materia primeraMateria = ControladorMateria.getPrimeraMateria(); Materia primeraMateria = ControladorMateria.getPrimeraMateria();
if (primeraMateria != null) { if (primeraMateria != null) {
panelMaterias.setMateriaActual(primeraMateria); panelMaterias.setMateriaActual(primeraMateria);
actualizarPantalla(); actualizarBotonesPantalla();
}
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
Estudiante primerEstudiante = ControladorEstudiante.getPrimerEstudiante();
if (primerEstudiante != null) {
panelEstudiantes.setEstudianteActual(primerEstudiante);
actualizarBotonesPantalla();
} }
} }
@@ -291,13 +370,19 @@ public class MainView extends JFrame {
Curso ultimoCurso = ControladorCurso.getUltimoCurso(); Curso ultimoCurso = ControladorCurso.getUltimoCurso();
if (ultimoCurso != null) { if (ultimoCurso != null) {
panelCursos.setCursoActual(ultimoCurso); panelCursos.setCursoActual(ultimoCurso);
actualizarPantalla(); actualizarBotonesPantalla();
} }
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
Materia ultimaMateria = ControladorMateria.getUltimaMateria(); Materia ultimaMateria = ControladorMateria.getUltimaMateria();
if (ultimaMateria != null) { if (ultimaMateria != null) {
panelMaterias.setMateriaActual(ultimaMateria); panelMaterias.setMateriaActual(ultimaMateria);
actualizarPantalla(); actualizarBotonesPantalla();
}
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
Estudiante ultimoEstudiante = ControladorEstudiante.getUltimoEstudiante();
if (ultimoEstudiante != null) {
panelEstudiantes.setEstudianteActual(ultimoEstudiante);
actualizarBotonesPantalla();
} }
} }
} }
@@ -308,14 +393,20 @@ public class MainView extends JFrame {
Curso siguienteCurso = ControladorCurso.getSiguienteCurso(panelCursos.getCursoActual()); Curso siguienteCurso = ControladorCurso.getSiguienteCurso(panelCursos.getCursoActual());
if (siguienteCurso != null) { if (siguienteCurso != null) {
panelCursos.setCursoActual(siguienteCurso); panelCursos.setCursoActual(siguienteCurso);
actualizarPantalla(); actualizarBotonesPantalla();
} }
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
Materia siguienteMateria = ControladorMateria.getSiguienteMateria(panelMaterias.getMateriaActual()); Materia siguienteMateria = ControladorMateria.getSiguienteMateria(panelMaterias.getMateriaActual());
if (siguienteMateria != null) { if (siguienteMateria != null) {
panelMaterias.setMateriaActual(siguienteMateria); panelMaterias.setMateriaActual(siguienteMateria);
actualizarPantalla(); actualizarBotonesPantalla();
}
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
Estudiante siguienteEstudiante = ControladorEstudiante.getSiguienteEstudiante(panelEstudiantes.getEstudianteActual());
if (siguienteEstudiante != null) {
panelEstudiantes.setEstudianteActual(siguienteEstudiante);
actualizarBotonesPantalla();
} }
} }
@@ -330,7 +421,7 @@ public class MainView extends JFrame {
Curso anteriorCurso = ControladorCurso.getAnteriorCurso(cursoActual); Curso anteriorCurso = ControladorCurso.getAnteriorCurso(cursoActual);
if (anteriorCurso != null) { if (anteriorCurso != null) {
panelCursos.setCursoActual(anteriorCurso); panelCursos.setCursoActual(anteriorCurso);
actualizarPantalla(); actualizarBotonesPantalla();
} }
} }
} else if (tabbedPane.getSelectedComponent() == panelMaterias) { } else if (tabbedPane.getSelectedComponent() == panelMaterias) {
@@ -341,13 +432,24 @@ public class MainView extends JFrame {
Materia anteriorMateria = ControladorMateria.getAnteriorMateria(panelMaterias.getMateriaActual()); Materia anteriorMateria = ControladorMateria.getAnteriorMateria(panelMaterias.getMateriaActual());
if (anteriorMateria != null) { if (anteriorMateria != null) {
panelMaterias.setMateriaActual(anteriorMateria); panelMaterias.setMateriaActual(anteriorMateria);
actualizarPantalla(); actualizarBotonesPantalla();
}
}
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
Estudiante estudianteActual = panelEstudiantes.getEstudianteActual();
if (estudianteActual.getId() == -1) {
panelEstudiantes.setEstudianteActual(ControladorEstudiante.getUltimoEstudiante());
} else {
Estudiante anteriorEstudiante = ControladorEstudiante.getAnteriorEstudiante(panelEstudiantes.getEstudianteActual());
if (anteriorEstudiante != null) {
panelEstudiantes.setEstudianteActual(anteriorEstudiante);
actualizarBotonesPantalla();
} }
} }
} }
} }
private void actualizarPantalla() { private void actualizarBotonesPantalla() {
if (tabbedPane.getSelectedComponent() == panelCursos) { if (tabbedPane.getSelectedComponent() == panelCursos) {
Curso cursoActual = panelCursos.getCursoActual(); Curso cursoActual = panelCursos.getCursoActual();
alternarBotonesToolbar( alternarBotonesToolbar(
@@ -358,6 +460,11 @@ public class MainView extends JFrame {
alternarBotonesToolbar( alternarBotonesToolbar(
materiaActual.getId() == ControladorMateria.getPrimeraMateria().getId(), materiaActual.getId() == ControladorMateria.getPrimeraMateria().getId(),
materiaActual.getId() == ControladorMateria.getUltimaMateria().getId()); materiaActual.getId() == ControladorMateria.getUltimaMateria().getId());
} else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
Estudiante estudianteActual = panelEstudiantes.getEstudianteActual();
alternarBotonesToolbar(
estudianteActual.getId() == ControladorEstudiante.getPrimerEstudiante().getId(),
estudianteActual.getId() == ControladorEstudiante.getUltimoEstudiante().getId());
} }
} }

View File

@@ -163,6 +163,7 @@ public class PanelPersona extends JPanel {
tfDireccion.setText(persona.getDireccion()); tfDireccion.setText(persona.getDireccion());
tfEmail.setText(persona.getEmail()); tfEmail.setText(persona.getEmail());
tfTelefono.setText(persona.getTelefono()); tfTelefono.setText(persona.getTelefono());
personaActual = persona;
} }
private Persona getPersona() { private Persona getPersona() {
@@ -176,19 +177,19 @@ public class PanelPersona extends JPanel {
return personaActual; return personaActual;
} }
public void setEstudiante(Estudiante estudiante) { public void setEstudianteActual(Estudiante estudiante) {
setPersona(estudiante); setPersona(estudiante);
} }
public Estudiante getEstudiante() { public Estudiante getEstudianteActual() {
return (Estudiante) getPersona(); return (Estudiante) getPersona();
} }
public void setProfesor(Profesor profesor) { public void setProfesorActual(Profesor profesor) {
setPersona(profesor); setPersona(profesor);
} }
public Profesor getProfesor() { public Profesor getProfesorActual() {
return (Profesor) getPersona(); return (Profesor) getPersona();
} }