From 7f3c76ea188e909b13d0dea7c510f5914ccf6f96 Mon Sep 17 00:00:00 2001 From: "victor.monge" <zs22016120@estudiantes.uv.mx> Date: Thu, 6 Mar 2025 20:22:02 -0600 Subject: [PATCH] =?UTF-8?q?Obtenci=C3=B3n=20eventos=20en=20ComboBox,=20pas?= =?UTF-8?q?e=20eventos=20a=20menuController,=20cierre=20de=20la=20conexi?= =?UTF-8?q?=C3=B3n=20BD=20al=20cerrar=20ventana.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProyectoVentaBoletos.java | 2 - .../java/controller/ConexionSingleton.java | 10 ++-- .../main/java/controller/MenuController.java | 51 ++++++++++++++++++- .../src/main/java/model/ModeloSQL.java | 10 +++- .../src/main/java/view/Menu.form | 19 ++++--- .../src/main/java/view/Menu.java | 32 +++++------- 6 files changed, 86 insertions(+), 38 deletions(-) diff --git a/ProyectoVentaBoletos/src/main/java/com/cip/proyectoventaboletos/ProyectoVentaBoletos.java b/ProyectoVentaBoletos/src/main/java/com/cip/proyectoventaboletos/ProyectoVentaBoletos.java index 732144a..7654523 100644 --- a/ProyectoVentaBoletos/src/main/java/com/cip/proyectoventaboletos/ProyectoVentaBoletos.java +++ b/ProyectoVentaBoletos/src/main/java/com/cip/proyectoventaboletos/ProyectoVentaBoletos.java @@ -17,7 +17,5 @@ public class ProyectoVentaBoletos { // Iniciar interfaz principal Menu menu = new Menu(); - // Iniciar controlador menu - // ... } } diff --git a/ProyectoVentaBoletos/src/main/java/controller/ConexionSingleton.java b/ProyectoVentaBoletos/src/main/java/controller/ConexionSingleton.java index 7caa864..b9b237a 100644 --- a/ProyectoVentaBoletos/src/main/java/controller/ConexionSingleton.java +++ b/ProyectoVentaBoletos/src/main/java/controller/ConexionSingleton.java @@ -20,12 +20,12 @@ public class ConexionSingleton { Class.forName("com.mysql.cj.jdbc.Driver"); CONEXION = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch(ClassNotFoundException e) { - System.out.println("ConexionSingleton: error Driver no encontrado. " + e.getMessage()); + System.out.println("ConexionSingleton.getInstance(): error Driver no encontrado. " + e.getMessage()); } catch(SQLException e) { - System.out.println("ConexionSingleton: error no se pudo establecer la conexión. " + e.getMessage()); + System.out.println("ConexionSingleton.getInstance(): error no se pudo establecer la conexión. " + e.getMessage()); } } - System.out.println("ConexionSingleton: conexión exitosa."); + System.out.println("ConexionSingleton.getInstance(): conexión exitosa."); return CONEXION; } @@ -34,9 +34,9 @@ public class ConexionSingleton { try { CONEXION.close(); CONEXION = null; - System.out.println("ConexionSingleton: conexión cerrada."); + System.out.println("ConexionSingleton.closeConnection(): conexión cerrada."); } catch (SQLException e) { - System.out.println("ConexionSingleton: error al cerrar la conexión: " + e.getMessage()); + System.out.println("ConexionSingleton.closeConnection(): error al cerrar la conexión: " + e.getMessage()); } } } diff --git a/ProyectoVentaBoletos/src/main/java/controller/MenuController.java b/ProyectoVentaBoletos/src/main/java/controller/MenuController.java index 655cf6e..bfe30ef 100644 --- a/ProyectoVentaBoletos/src/main/java/controller/MenuController.java +++ b/ProyectoVentaBoletos/src/main/java/controller/MenuController.java @@ -1,11 +1,60 @@ package controller; +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; +import model.Evento; +import model.ModeloSQL; import view.Menu; +import view.MenuSala; -public class MenuController { +public class MenuController extends WindowAdapter implements ActionListener { private Menu menu; + private ModeloSQL modeloSQL; public MenuController(Menu menu){ this.menu = menu; + this.modeloSQL = new ModeloSQL(); + obtenerEventosDefaultComboBoxMoldel(); + } + + public void actionPerformed(ActionEvent e){ + Object o = e.getSource(); + + // Si se presiona el boton de visualizar + if(o.equals(menu.jButtonVisualizar)){ + System.out.println("controller.MenuController.actionPerformed(): jButtonVisualizar"); + MenuSala menuSala = new MenuSala(); + menu.jPanelMenuSala.removeAll(); // Limpiar panel + menu.jPanelMenuSala.add(menuSala, BorderLayout.CENTER); // Agrega el nuevo JPanel + menu.jPanelMenuSala.revalidate(); // Reorganiza los componentes + menu. jPanelMenuSala.repaint(); // Redibuja la interfaz + } + } + + @Override + public void windowClosing(WindowEvent e) { + System.out.println("controller.MenuController.windowClosing(): cerrar."); + ConexionSingleton.closeConnection(); + } + + // Obtener ResultSet de ModeloSQL y añádir eventos al ComboBoxModel del ComboBox de eventos + public void obtenerEventosDefaultComboBoxMoldel(){ + ResultSet rs = modeloSQL.obtenerEventos(); + try { + while ( rs.next() ){ + menu.defaultComboBoxModel.addElement(rs.getString("nombre")); + System.out.println("MenuController.obtenerEventosDefaultComboBoxMoldel(): + " + rs.getString("nombre")); + } + } catch (SQLException ex) { + System.out.println("MenuController.obtenerEventosDefaultComboBoxMoldel(): error " + ex);; + } } } diff --git a/ProyectoVentaBoletos/src/main/java/model/ModeloSQL.java b/ProyectoVentaBoletos/src/main/java/model/ModeloSQL.java index fdad1fc..143b998 100644 --- a/ProyectoVentaBoletos/src/main/java/model/ModeloSQL.java +++ b/ProyectoVentaBoletos/src/main/java/model/ModeloSQL.java @@ -3,8 +3,6 @@ package model; import controller.ConexionSingleton; import java.sql.*; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; public class ModeloSQL { Connection con; @@ -16,6 +14,14 @@ public class ModeloSQL { // Eventos public ResultSet obtenerEventos(){ ResultSet rs = null; + try { + Statement st = con.createStatement(); + String consulta = "SELECT * FROM eventos"; + rs = st.executeQuery(consulta); + System.out.println("ModeloSQL.obtenerEventos(): eventos obtenidos."); + } catch (SQLException e) { + System.out.println("[X]ModeloSQL.obtenerEventos(): " + e.getMessage()); + } return rs; } diff --git a/ProyectoVentaBoletos/src/main/java/view/Menu.form b/ProyectoVentaBoletos/src/main/java/view/Menu.form index d1448a9..b171880 100644 --- a/ProyectoVentaBoletos/src/main/java/view/Menu.form +++ b/ProyectoVentaBoletos/src/main/java/view/Menu.form @@ -79,26 +79,22 @@ </Component> <Component class="javax.swing.JComboBox" name="jComboBoxEventos"> <Properties> - <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> - <StringArray count="4"> - <StringItem index="0" value="Item 1"/> - <StringItem index="1" value="Item 2"/> - <StringItem index="2" value="Item 3"/> - <StringItem index="3" value="Item 4"/> - </StringArray> + <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor"> + <Connection code="defaultComboBoxModel" type="code"/> </Property> </Properties> <AuxValues> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> + <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="1"/> </AuxValues> </Component> <Component class="javax.swing.JButton" name="jButtonVisualizar"> <Properties> <Property name="text" type="java.lang.String" value="Visualizar"/> </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButtonVisualizarActionPerformed"/> - </Events> + <AuxValues> + <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="1"/> + </AuxValues> </Component> <Container class="javax.swing.JPanel" name="jPanelMenuSala"> <Properties> @@ -106,6 +102,9 @@ <Color blue="fd" green="fa" red="f8" type="rgb"/> </Property> </Properties> + <AuxValues> + <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="1"/> + </AuxValues> <Layout> <DimensionLayout dim="0"> diff --git a/ProyectoVentaBoletos/src/main/java/view/Menu.java b/ProyectoVentaBoletos/src/main/java/view/Menu.java index ec60867..ef0bd61 100644 --- a/ProyectoVentaBoletos/src/main/java/view/Menu.java +++ b/ProyectoVentaBoletos/src/main/java/view/Menu.java @@ -1,14 +1,23 @@ package view; import java.awt.BorderLayout; +import controller.MenuController; +import javax.swing.DefaultComboBoxModel; public class Menu extends javax.swing.JFrame { - + + public DefaultComboBoxModel<String> defaultComboBoxModel; + public Menu() { + defaultComboBoxModel = new DefaultComboBoxModel(); initComponents(); this.setLocationRelativeTo(null); this.setVisible(true); jPanelMenuSala.setLayout(new BorderLayout()); + + MenuController menuController = new MenuController(this); + this.jButtonVisualizar.addActionListener(menuController); + addWindowListener(menuController); } @SuppressWarnings("unchecked") @@ -29,14 +38,9 @@ public class Menu extends javax.swing.JFrame { jLabel1.setFont(new java.awt.Font("Gill Sans MT", 0, 14)); // NOI18N jLabel1.setText("Seleccione un evento:"); - jComboBoxEventos.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + jComboBoxEventos.setModel(defaultComboBoxModel); jButtonVisualizar.setText("Visualizar"); - jButtonVisualizar.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonVisualizarActionPerformed(evt); - } - }); jPanelMenuSala.setBackground(new java.awt.Color(248, 250, 253)); @@ -85,18 +89,10 @@ public class Menu extends javax.swing.JFrame { pack(); }// </editor-fold>//GEN-END:initComponents - private void jButtonVisualizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonVisualizarActionPerformed - MenuSala menuSala = new MenuSala(); - jPanelMenuSala.removeAll(); // Limpiar panel - jPanelMenuSala.add(menuSala, BorderLayout.CENTER); // Agrega el nuevo JPanel - jPanelMenuSala.revalidate(); // Reorganiza los componentes - jPanelMenuSala.repaint(); // Redibuja la interfaz - }//GEN-LAST:event_jButtonVisualizarActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton jButtonVisualizar; - private javax.swing.JComboBox<String> jComboBoxEventos; + public javax.swing.JButton jButtonVisualizar; + public javax.swing.JComboBox<String> jComboBoxEventos; private javax.swing.JLabel jLabel1; - private javax.swing.JPanel jPanelMenuSala; + public javax.swing.JPanel jPanelMenuSala; // End of variables declaration//GEN-END:variables }