Color preferido

This commit is contained in:
2025-04-10 18:47:53 +02:00
parent 8ab61b5ef8
commit dd43b8b3e4
8 changed files with 89 additions and 26 deletions

View File

@@ -23,7 +23,8 @@ public class ControladorEstudiante {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -52,7 +53,8 @@ public class ControladorEstudiante {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -81,7 +83,8 @@ public class ControladorEstudiante {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -111,7 +114,8 @@ public class ControladorEstudiante {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -142,7 +146,7 @@ public class ControladorEstudiante {
} }
Connection conn = GestorConexiones.getConexion(); Connection conn = GestorConexiones.getConexion();
try { try {
PreparedStatement pst = conn.prepareStatement("UPDATE estudiante SET nombre = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ?, idTipologiaSexo = ?, imagen = ? WHERE id = ?"); PreparedStatement pst = conn.prepareStatement("UPDATE estudiante SET nombre = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ?, idTipologiaSexo = ?, imagen = ?, colorPreferido = ? WHERE id = ?");
pst.setString(1, estudiante.getNombre()); pst.setString(1, estudiante.getNombre());
pst.setString(2, estudiante.getApellido1()); pst.setString(2, estudiante.getApellido1());
pst.setString(3, estudiante.getApellido2()); pst.setString(3, estudiante.getApellido2());
@@ -152,7 +156,8 @@ public class ControladorEstudiante {
pst.setString(7, estudiante.getTelefono()); pst.setString(7, estudiante.getTelefono());
pst.setInt(8, estudiante.getIdTipologiaSexo()); pst.setInt(8, estudiante.getIdTipologiaSexo());
pst.setBytes(9, estudiante.getImagen()); pst.setBytes(9, estudiante.getImagen());
pst.setInt(10, estudiante.getId()); pst.setString(10, estudiante.getColorPreferido());
pst.setInt(11, estudiante.getId());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
return 0; return 0;
@@ -163,7 +168,7 @@ public class ControladorEstudiante {
public static int nuevoEstudiante(Estudiante estudiante) { public static int nuevoEstudiante(Estudiante estudiante) {
Connection conn = GestorConexiones.getConexion(); Connection conn = GestorConexiones.getConexion();
try { try {
PreparedStatement pst = conn.prepareStatement("INSERT INTO estudiante (id,nombre,apellido1,apellido2,dni,direccion,email,telefono,idTipologiaSexo,imagen) VALUES (?,?,?,?,?,?,?,?,?,?)"); PreparedStatement pst = conn.prepareStatement("INSERT INTO estudiante (id,nombre,apellido1,apellido2,dni,direccion,email,telefono,idTipologiaSexo,imagen,colorPreferido) VALUES (?,?,?,?,?,?,?,?,?,?,?)");
pst.setInt(1, estudiante.getId()); pst.setInt(1, estudiante.getId());
pst.setString(2, estudiante.getNombre()); pst.setString(2, estudiante.getNombre());
pst.setString(3, estudiante.getApellido1()); pst.setString(3, estudiante.getApellido1());
@@ -174,6 +179,7 @@ public class ControladorEstudiante {
pst.setString(8, estudiante.getTelefono()); pst.setString(8, estudiante.getTelefono());
pst.setInt(9, estudiante.getIdTipologiaSexo()); pst.setInt(9, estudiante.getIdTipologiaSexo());
pst.setBytes(10, estudiante.getImagen()); pst.setBytes(10, estudiante.getImagen());
pst.setString(11, estudiante.getColorPreferido());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); throw new RuntimeException(e);

View File

@@ -23,7 +23,8 @@ public class ControladorProfesor {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -52,7 +53,8 @@ public class ControladorProfesor {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -81,7 +83,8 @@ public class ControladorProfesor {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -111,7 +114,8 @@ public class ControladorProfesor {
rs.getString("email"), rs.getString("email"),
rs.getString("telefono"), rs.getString("telefono"),
rs.getInt("idTipologiaSexo"), rs.getInt("idTipologiaSexo"),
rs.getBytes("imagen") rs.getBytes("imagen"),
rs.getString("colorPreferido")
); );
} }
@@ -142,7 +146,7 @@ public class ControladorProfesor {
} }
Connection conn = GestorConexiones.getConexion(); Connection conn = GestorConexiones.getConexion();
try { try {
PreparedStatement pst = conn.prepareStatement("UPDATE profesor SET nombre = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ?, idTipologiaSexo = ?, imagen = ? WHERE id = ?"); PreparedStatement pst = conn.prepareStatement("UPDATE profesor SET nombre = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ?, idTipologiaSexo = ?, imagen = ?, colorPreferido = ? WHERE id = ?");
pst.setString(1, profesor.getNombre()); pst.setString(1, profesor.getNombre());
pst.setString(2, profesor.getApellido1()); pst.setString(2, profesor.getApellido1());
pst.setString(3, profesor.getApellido2()); pst.setString(3, profesor.getApellido2());
@@ -152,7 +156,8 @@ public class ControladorProfesor {
pst.setString(7, profesor.getTelefono()); pst.setString(7, profesor.getTelefono());
pst.setInt(8, profesor.getIdTipologiaSexo()); pst.setInt(8, profesor.getIdTipologiaSexo());
pst.setBytes(9, profesor.getImagen()); pst.setBytes(9, profesor.getImagen());
pst.setInt(10, profesor.getId()); pst.setString(10, profesor.getColorPreferido());
pst.setInt(11, profesor.getId());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
return 0; return 0;
@@ -163,7 +168,7 @@ public class ControladorProfesor {
public static int nuevoProfesor(Profesor profesor) { public static int nuevoProfesor(Profesor profesor) {
Connection conn = GestorConexiones.getConexion(); Connection conn = GestorConexiones.getConexion();
try { try {
PreparedStatement pst = conn.prepareStatement("INSERT INTO profesor (id,nombre,apellido1,apellido2,dni,direccion,email,telefono,idTipologiaSexo,imagen) VALUES (?,?,?,?,?,?,?,?,?,?)"); PreparedStatement pst = conn.prepareStatement("INSERT INTO profesor (id,nombre,apellido1,apellido2,dni,direccion,email,telefono,idTipologiaSexo,imagen, colorPreferido) VALUES (?,?,?,?,?,?,?,?,?,?,?)");
pst.setInt(1, profesor.getId()); pst.setInt(1, profesor.getId());
pst.setString(2, profesor.getNombre()); pst.setString(2, profesor.getNombre());
pst.setString(3, profesor.getApellido1()); pst.setString(3, profesor.getApellido1());
@@ -174,6 +179,7 @@ public class ControladorProfesor {
pst.setString(8, profesor.getTelefono()); pst.setString(8, profesor.getTelefono());
pst.setInt(9, profesor.getIdTipologiaSexo()); pst.setInt(9, profesor.getIdTipologiaSexo());
pst.setBytes(10, profesor.getImagen()); pst.setBytes(10, profesor.getImagen());
pst.setString(11, profesor.getColorPreferido());
return pst.executeUpdate(); return pst.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); throw new RuntimeException(e);

View File

@@ -0,0 +1,14 @@
package net.h4ckx0r.controlador;
import java.awt.*;
public class Utils {
public static Color stringToColor(String color) {
return Color.decode(color);
}
public static String colorToString(Color color) {
System.out.println("#" + Integer.toHexString(color.getRGB()));
return "#" + (Integer.toHexString(color.getRGB())).substring(2);
}
}

View File

@@ -1,8 +1,10 @@
package net.h4ckx0r.modelo; package net.h4ckx0r.modelo;
import java.awt.*;
public class Estudiante extends Persona { public class Estudiante extends Persona {
public Estudiante(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo, byte[] imagen) { public Estudiante(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo, byte[] imagen, String colorPreferido) {
super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono, idTipologiaSexo, imagen); super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono, idTipologiaSexo, imagen, colorPreferido);
} }
} }

View File

@@ -1,5 +1,6 @@
package net.h4ckx0r.modelo; package net.h4ckx0r.modelo;
import java.awt.*;
import java.util.Arrays; import java.util.Arrays;
public class Persona { public class Persona {
@@ -13,8 +14,9 @@ public class Persona {
private String telefono; private String telefono;
private int idTipologiaSexo; private int idTipologiaSexo;
private byte[] imagen; private byte[] imagen;
private String colorPreferido;
public Persona(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo, byte[] imagen) { public Persona(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo, byte[] imagen, String colorPreferido) {
this.id = id; this.id = id;
this.nombre = nombre; this.nombre = nombre;
this.apellido1 = apellido1; this.apellido1 = apellido1;
@@ -25,6 +27,7 @@ public class Persona {
this.telefono = telefono; this.telefono = telefono;
this.idTipologiaSexo = idTipologiaSexo; this.idTipologiaSexo = idTipologiaSexo;
this.imagen = imagen; this.imagen = imagen;
this.colorPreferido = colorPreferido;
} }
public int getId() { public int getId() {
@@ -107,6 +110,14 @@ public class Persona {
this.imagen = imagen; this.imagen = imagen;
} }
public String getColorPreferido() {
return colorPreferido;
}
public void setColorPreferido(String colorPreferido) {
this.colorPreferido = colorPreferido;
}
@Override @Override
public String toString() { public String toString() {
return "Persona{" + return "Persona{" +
@@ -120,6 +131,7 @@ public class Persona {
", telefono='" + telefono + '\'' + ", telefono='" + telefono + '\'' +
", idTipologiaSexo=" + idTipologiaSexo + ", idTipologiaSexo=" + idTipologiaSexo +
", imagen=" + Arrays.toString(imagen) + ", imagen=" + Arrays.toString(imagen) +
", colorPreferido=" + colorPreferido + '\'' +
'}'; '}';
} }
} }

View File

@@ -1,7 +1,9 @@
package net.h4ckx0r.modelo; package net.h4ckx0r.modelo;
import java.awt.*;
public class Profesor extends Persona{ public class Profesor extends Persona{
public Profesor(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo, byte[] imagen) { public Profesor(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono, int idTipologiaSexo, byte[] imagen, String colorPreferido) {
super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono, idTipologiaSexo, imagen); super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono, idTipologiaSexo, imagen, colorPreferido);
} }
} }

View File

@@ -262,9 +262,9 @@ public class MainView extends JFrame {
} 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) { } else if (tabbedPane.getSelectedComponent() == panelEstudiantes) {
panelEstudiantes.setEstudianteActual(new Estudiante(-1, "", "", "", "", "", "", "", -1, null)); panelEstudiantes.setEstudianteActual(new Estudiante(-1, "", "", "", "", "", "", "", -1, null, null));
} else if (tabbedPane.getSelectedComponent() == panelProfesores) { } else if (tabbedPane.getSelectedComponent() == panelProfesores) {
panelProfesores.setProfesorActual(new Profesor(-1, "", "", "", "", "", "", "", -1, null)); panelProfesores.setProfesorActual(new Profesor(-1, "", "", "", "", "", "", "", -1, null, null));
} }
} }

View File

@@ -1,6 +1,7 @@
package net.h4ckx0r.vista.panels; package net.h4ckx0r.vista.panels;
import net.h4ckx0r.controlador.ControladorTipologiaSexo; import net.h4ckx0r.controlador.ControladorTipologiaSexo;
import net.h4ckx0r.controlador.Utils;
import net.h4ckx0r.modelo.*; import net.h4ckx0r.modelo.*;
import javax.swing.*; import javax.swing.*;
@@ -17,11 +18,14 @@ import java.util.List;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import static net.h4ckx0r.controlador.Utils.stringToColor;
public class PanelPersona extends JPanel { public class PanelPersona extends JPanel {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Persona personaActual; private Persona personaActual;
private Color colorFondoSistema = this.getBackground();
private JTextField tfNombre; private JTextField tfNombre;
private JTextField tfApellido1; private JTextField tfApellido1;
@@ -34,9 +38,10 @@ public class PanelPersona extends JPanel {
private JLabel labelImage; private JLabel labelImage;
private JPopupMenu popupMenuImage; private JPopupMenu popupMenuImage;
private JMenuItem mntmDimensiones; private JMenuItem mntmDimensiones;
private JTextField tfColorPreferido;
List<TipologiaSexo> sexos = ControladorTipologiaSexo.getAllSexos(); List<TipologiaSexo> sexos = ControladorTipologiaSexo.getAllSexos();
private JTextField textField;
/** /**
* Create the panel. * Create the panel.
@@ -249,19 +254,19 @@ public class PanelPersona extends JPanel {
gbc_lblNewLabel_8.gridy = 8; gbc_lblNewLabel_8.gridy = 8;
add(lblNewLabel_8, gbc_lblNewLabel_8); add(lblNewLabel_8, gbc_lblNewLabel_8);
textField = new JTextField(); tfColorPreferido = new JTextField();
GridBagConstraints gbc_textFieldColor = new GridBagConstraints(); GridBagConstraints gbc_textFieldColor = new GridBagConstraints();
gbc_textFieldColor.insets = new Insets(0, 0, 5, 5); gbc_textFieldColor.insets = new Insets(0, 0, 5, 5);
gbc_textFieldColor.fill = GridBagConstraints.HORIZONTAL; gbc_textFieldColor.fill = GridBagConstraints.HORIZONTAL;
gbc_textFieldColor.gridx = 1; gbc_textFieldColor.gridx = 1;
gbc_textFieldColor.gridy = 8; gbc_textFieldColor.gridy = 8;
add(textField, gbc_textFieldColor); add(tfColorPreferido, gbc_textFieldColor);
textField.setColumns(10); tfColorPreferido.setColumns(10);
JButton btnNewButton_1 = new JButton("Cambiar Color"); JButton btnNewButton_1 = new JButton("Cambiar Color");
btnNewButton_1.addActionListener(new ActionListener() { btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
solicitarColor();
} }
}); });
GridBagConstraints gbc_btnNewButton_1 = new GridBagConstraints(); GridBagConstraints gbc_btnNewButton_1 = new GridBagConstraints();
@@ -282,6 +287,12 @@ 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());
if (persona.getColorPreferido() != null && !persona.getColorPreferido().isEmpty()) {
this.setBackground(stringToColor(persona.getColorPreferido()));
} else {
this.setBackground(colorFondoSistema);
}
tfColorPreferido.setText(persona.getColorPreferido());
personaActual = persona; personaActual = persona;
actualizarSexo(); actualizarSexo();
ponerImagen(); ponerImagen();
@@ -296,6 +307,7 @@ public class PanelPersona extends JPanel {
personaActual.setDireccion(tfDireccion.getText()); personaActual.setDireccion(tfDireccion.getText());
personaActual.setEmail(tfEmail.getText()); personaActual.setEmail(tfEmail.getText());
personaActual.setTelefono(tfTelefono.getText()); personaActual.setTelefono(tfTelefono.getText());
personaActual.setColorPreferido(tfColorPreferido.getText());
return personaActual; return personaActual;
} }
@@ -393,4 +405,13 @@ public class PanelPersona extends JPanel {
private int[] getDimensionesImagen(ImageIcon icon) { private int[] getDimensionesImagen(ImageIcon icon) {
return new int[] {icon.getIconWidth(), icon.getIconHeight()}; return new int[] {icon.getIconWidth(), icon.getIconHeight()};
} }
private void solicitarColor() {
Color color = JColorChooser.showDialog(this, "Seleccione un color", colorFondoSistema);
if (color != null) {
this.setBackground(color);
tfColorPreferido.setText(Utils.colorToString(color));
}
}
} }