From 300bd747cc41916d924716020f3d384222a59199 Mon Sep 17 00:00:00 2001 From: xFractu Date: Mon, 18 Mar 2024 13:23:30 -0600 Subject: [PATCH] avance 10 --- .../src/Vista/BotonConImagen.java | 11 ++- .../src/Vista/VentanaConciertos.form | 57 ++++++++----- .../src/Vista/VentanaConciertos.java | 48 ++++++----- .../src/Vista/panelAsientos.java | 81 +++++++++++-------- 4 files changed, 122 insertions(+), 75 deletions(-) diff --git a/ProyectoConciertoApp/src/Vista/BotonConImagen.java b/ProyectoConciertoApp/src/Vista/BotonConImagen.java index 48c6618..3c0c823 100644 --- a/ProyectoConciertoApp/src/Vista/BotonConImagen.java +++ b/ProyectoConciertoApp/src/Vista/BotonConImagen.java @@ -8,10 +8,11 @@ import java.awt.event.ActionListener; class BotonConImagen extends JButton { int cambio = 0; int precio = 150; - private int id; // Campo id privado + private String id; // Campo id privado private boolean isAmarillo = false; // Estado para indicar si está utilizando el color amarillo + - public BotonConImagen(int id) { + public BotonConImagen(String id) { this.id = id; ImageIcon icono = new ImageIcon("C:/Users/mario/OneDrive/Documentos/NetBeansProjects/Imagene/src/asdasdasdasd.png"); setIcon(icono); // Establece la imagen en el botón @@ -30,23 +31,25 @@ class BotonConImagen extends JButton { setPreferredSize(new Dimension(icono.getIconWidth(), icono.getIconHeight())); // Establece el tamaño del botón según el tamaño de la imagen cambio = 1; isAmarillo = true; + System.out.println("Selecciono "+id); } else { ImageIcon icono = new ImageIcon("C:/Users/mario/OneDrive/Documentos/NetBeansProjects/Imagene/src/asdasdasdasd.png"); setIcon(icono); // Establece la imagen en el botón setPreferredSize(new Dimension(icono.getIconWidth(), icono.getIconHeight())); // Establece el tamaño del botón según el tamaño de la imagen cambio = 0; isAmarillo = false; + System.out.println("Deselecciono"+id); } } }); } // Métodos getter y setter para el campo id - public int getId() { + public String getId() { return id; } - public void setId(int id) { + public void setId(String id) { this.id = id; } diff --git a/ProyectoConciertoApp/src/Vista/VentanaConciertos.form b/ProyectoConciertoApp/src/Vista/VentanaConciertos.form index 1df5c0c..2939ed0 100644 --- a/ProyectoConciertoApp/src/Vista/VentanaConciertos.form +++ b/ProyectoConciertoApp/src/Vista/VentanaConciertos.form @@ -126,6 +126,19 @@ + + + + + + + + + + + + + @@ -1595,8 +1608,8 @@ - + @@ -1618,8 +1631,28 @@ + + + + + + + + + + + + + + + + + + + + @@ -1641,33 +1674,15 @@ - - - - - + - - - - - + - - - - - - - - - - diff --git a/ProyectoConciertoApp/src/Vista/VentanaConciertos.java b/ProyectoConciertoApp/src/Vista/VentanaConciertos.java index 41f56f9..d05d0bc 100644 --- a/ProyectoConciertoApp/src/Vista/VentanaConciertos.java +++ b/ProyectoConciertoApp/src/Vista/VentanaConciertos.java @@ -101,6 +101,7 @@ public class VentanaConciertos extends javax.swing.JFrame { banda = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); fondoportada = new javax.swing.JLabel(); + jButton1 = new javax.swing.JButton(); panelSeleccion = new javax.swing.JPanel(); panelMapaAsientos = new javax.swing.JPanel(); panelMapaSala = new javax.swing.JPanel(); @@ -161,9 +162,9 @@ public class VentanaConciertos extends javax.swing.JFrame { LabelNums = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); + asientosSelecc = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); jPanel5 = new javax.swing.JPanel(); - jButton1 = new javax.swing.JButton(); panelFilas = new javax.swing.JPanel(); LabelA = new javax.swing.JLabel(); LabelB = new javax.swing.JLabel(); @@ -190,6 +191,14 @@ public class VentanaConciertos extends javax.swing.JFrame { barraSuperior.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 70, 300, 30)); barraSuperior.add(fondoportada, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 1260, 130)); + jButton1.setText("volver"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + barraSuperior.add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(1032, 30, 130, 60)); + panelSeleccion.setBackground(new java.awt.Color(255, 255, 255)); panelMapaAsientos.setBackground(new java.awt.Color(255, 255, 255)); @@ -1252,6 +1261,21 @@ public class VentanaConciertos extends javax.swing.JFrame { jPanel1.setBackground(new java.awt.Color(204, 204, 204)); + jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + + javax.swing.GroupLayout asientosSeleccLayout = new javax.swing.GroupLayout(asientosSelecc); + asientosSelecc.setLayout(asientosSeleccLayout); + asientosSeleccLayout.setHorizontalGroup( + asientosSeleccLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 321, Short.MAX_VALUE) + ); + asientosSeleccLayout.setVerticalGroup( + asientosSeleccLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 551, Short.MAX_VALUE) + ); + + jScrollPane1.setViewportView(asientosSelecc); + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( @@ -1263,28 +1287,15 @@ public class VentanaConciertos extends javax.swing.JFrame { .addGap(0, 0, Short.MAX_VALUE) ); - jButton1.setText("volver"); - jButton1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton1ActionPerformed(evt); - } - }); - javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() - .addContainerGap(136, Short.MAX_VALUE) - .addComponent(jButton1) - .addGap(115, 115, 115)) + .addGap(0, 0, Short.MAX_VALUE) ); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGap(21, 21, 21) - .addComponent(jButton1) - .addContainerGap(31, Short.MAX_VALUE)) + .addGap(0, 75, Short.MAX_VALUE) ); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); @@ -1295,8 +1306,8 @@ public class VentanaConciertos extends javax.swing.JFrame { .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jScrollPane1) - .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jScrollPane1)) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( @@ -2127,6 +2138,7 @@ public class VentanaConciertos extends javax.swing.JFrame { private javax.swing.JLabel LabelF; private javax.swing.JLabel LabelNums; private javax.swing.JPanel Principal; + private javax.swing.JPanel asientosSelecc; private javax.swing.JLabel banda; private javax.swing.JPanel barraSuperior; private javax.swing.JLabel fondoportada; diff --git a/ProyectoConciertoApp/src/Vista/panelAsientos.java b/ProyectoConciertoApp/src/Vista/panelAsientos.java index bcc2f40..0b3994b 100644 --- a/ProyectoConciertoApp/src/Vista/panelAsientos.java +++ b/ProyectoConciertoApp/src/Vista/panelAsientos.java @@ -21,52 +21,58 @@ public class panelAsientos extends JPanel { int Incremental = 1; private JLabel precioLabel; - public panelAsientos(String zona, String artista) { setPreferredSize(new Dimension(737, 737)); - setLayout(null); // Ajusta el diseño a null para posicionar los componentes manualmente + setLayout(new BorderLayout()); // Establecer un BorderLayout setBackground(Color.white); - + + JPanel panelCentral = new JPanel(); // Crear un nuevo panel para el contenido central + panelCentral.setLayout(null); // Ajusta el diseño a null para posicionar los componentes manualmente + panelCentral.setBackground(Color.white); + String nombreTabla = artista + zona; ImageIcon imageIcon = new ImageIcon("C:/Users/mario/OneDrive/Documentos/NetBeansProjects/Imagene/src/asdasdasdasd.png"); // Cambiar la ruta de la imagen JLabel imagenLabel = new JLabel(imageIcon); imagenLabel.setBounds(130, 10, imageIcon.getIconWidth(), imageIcon.getIconHeight()); - add(imagenLabel); + panelCentral.add(imagenLabel); JLabel asientoDisponibleDialogo = new JLabel("Asiento disponible"); asientoDisponibleDialogo.setBounds(210, 5, 130, 50); - add(asientoDisponibleDialogo); + panelCentral.add(asientoDisponibleDialogo); ImageIcon imageIcon2 = new ImageIcon("C:/Users/mario/OneDrive/Documentos/NetBeansProjects/Imagene/src/asiento seleccion.png"); // Cambiar la ruta de la imagen JLabel imagenLabel2 = new JLabel(imageIcon2); imagenLabel2.setBounds(330, 10, imageIcon.getIconWidth(), imageIcon.getIconHeight()); - add(imagenLabel2); + panelCentral.add(imagenLabel2); JLabel asientoSeleccionadoDialogo = new JLabel("Asiento seleccionado"); asientoSeleccionadoDialogo.setBounds(410, 5, 130, 50); - add(asientoSeleccionadoDialogo); + panelCentral.add(asientoSeleccionadoDialogo); ImageIcon imageIcon3 = new ImageIcon("C:/Users/mario/OneDrive/Documentos/NetBeansProjects/Imagene/src/asiento noDisponible.png"); // Cambiar la ruta de la imagen JLabel imagenLabel3 = new JLabel(imageIcon3); imagenLabel3.setBounds(545, 10, imageIcon.getIconWidth(), imageIcon.getIconHeight()); - add(imagenLabel3); + panelCentral.add(imagenLabel3); JLabel asientoNoDisponibleoDialogo = new JLabel("No Disponible"); asientoNoDisponibleoDialogo.setBounds(630, 5, 130, 50); - add(asientoNoDisponibleoDialogo); + panelCentral.add(asientoNoDisponibleoDialogo); JLabel sala = new JLabel("" ); sala.setBounds(210, 5, 130, 50); - add(sala); + panelCentral.add(sala); precioLabel = new JLabel("Precio total: $0"); precioLabel.setBounds(0, 70, 100, 30); - add(precioLabel); + panelCentral.add(precioLabel); - int botonesACrear = 7; int posX = 30; int posY = 150; + int filas = 6; + int columnas = 7; + char[] letrasFilas = {'A', 'B', 'C', 'D', 'E', 'F'}; + try { Connection connection = conexion.getInstance(); @@ -79,7 +85,7 @@ public class panelAsientos extends JPanel { if (!resultSet.next()) { // Si la tabla no existe, crearla PreparedStatement createStatement = connection.prepareStatement( - "CREATE TABLE " + nombreTabla + " (id INT, estado VARCHAR(255))" + "CREATE TABLE " + nombreTabla + " (id VARCHAR(255), estado VARCHAR(255))" ); createStatement.executeUpdate(); createStatement.close(); @@ -89,9 +95,6 @@ public class panelAsientos extends JPanel { System.out.println("Error al interactuar con la base de datos: " + ex.getMessage()); } - - - try { Connection connection = conexion.getInstance(); PreparedStatement checkStatement = connection.prepareStatement("SELECT COUNT(*) as count FROM "+nombreTabla); @@ -107,12 +110,12 @@ public class panelAsientos extends JPanel { ResultSet rs = selectStatement.executeQuery(); int contador = 0; // Contador para llevar el seguimiento de los botones creados while (rs.next()) { - int id = rs.getInt("id"); + String id = rs.getString("id"); String estado = rs.getString("estado"); BotonConImagen boton = new BotonConImagen(id); boton.setBounds(posX, posY, 70, 70); - add(boton); + panelCentral.add(boton); // Establecer el estado del botón según los datos recuperados de la base de datos if (estado.equals("disponible")) { @@ -134,15 +137,18 @@ public class panelAsientos extends JPanel { selectStatement.close(); } else { // Si no hay datos en la tabla, crear asientos nuevos - for (int fila = 0; fila < 6; fila++) { - for (int i = 0; i < botonesACrear; i++) { - DesignarId = Incremental++; - BotonConImagen boton = new BotonConImagen(DesignarId); + for (int fila = 0; fila < filas; fila++) { + for (int columna = 0; columna < columnas; columna++) { + char letraFila = letrasFilas[fila]; + int numeroColumna = columna + 1; + String idAsiento = String.valueOf(letraFila) + numeroColumna; + + BotonConImagen boton = new BotonConImagen(idAsiento); boton.setBounds(posX, posY, 70, 70); - add(boton); + panelCentral.add(boton); PreparedStatement insertStatement = connection.prepareStatement("INSERT INTO "+nombreTabla+" (id, estado) VALUES (?, ?)"); - insertStatement.setInt(1, DesignarId); + insertStatement.setString(1, idAsiento); insertStatement.setString(2, "disponible"); insertStatement.executeUpdate(); insertStatement.close(); @@ -157,9 +163,6 @@ public class panelAsientos extends JPanel { System.out.println("Error al interactuar con la base de datos: " + ex.getMessage()); } - - - JButton boton2 = new JButton("Comprar"); boton2.setBounds(10, 10, 100, 30); boton2.addActionListener(new ActionListener() { @@ -167,7 +170,7 @@ public class panelAsientos extends JPanel { public void actionPerformed(ActionEvent e) { int precioTotal = 0; Connection con = conexion.getInstance(); - for (Component component : getComponents()) { + for (Component component : panelCentral.getComponents()) { if (component instanceof BotonConImagen) { BotonConImagen boton = (BotonConImagen) component; if (boton.isAmarillo()) { @@ -177,11 +180,11 @@ public class panelAsientos extends JPanel { Connection connection = conexion.getInstance(); PreparedStatement statement = connection.prepareStatement("UPDATE "+nombreTabla+" SET estado = ? WHERE id = ?"); statement.setString(1, "ocupado"); - statement.setInt(2, boton.getId()); + statement.setString(2, boton.getId()); statement.executeUpdate(); statement.close(); - System.out.println("Comprando el asiento seleccionado con el numero " + boton.getId()); + System.out.println("Comprando el asiento seleccionado con el número " + boton.getId()); boton.Ocupado(); @@ -195,6 +198,20 @@ public class panelAsientos extends JPanel { precioLabel.setText("Precio total: $" + precioTotal); } }); - add(boton2); + panelCentral.add(boton2); + + // Agregar panelCentral al centro de panelAsientos + add(panelCentral, BorderLayout.CENTER); + + + // Crear panelSeleccionA y establecer su color + JPanel panelSeleccionA = new JPanel(); + panelSeleccionA.setBackground(Color.RED); + + // Agregar panelSeleccionA al este de panelAsientos + add(panelSeleccionA, BorderLayout.EAST); + + + } -} +} \ No newline at end of file