avance 5
This commit is contained in:
parent
45a21fb60c
commit
6cec40596c
|
@ -0,0 +1,177 @@
|
||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package Vista;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author mario
|
||||||
|
*/
|
||||||
|
import Modelo.conexion;
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.sql.*;
|
||||||
|
|
||||||
|
public class panelAsientos extends JPanel {
|
||||||
|
public conexion con;
|
||||||
|
int DesignarId = 0;
|
||||||
|
int Incremental = 1;
|
||||||
|
|
||||||
|
private JLabel precioLabel;
|
||||||
|
|
||||||
|
public panelAsientos(String zona) {
|
||||||
|
setPreferredSize(new Dimension(737, 737));
|
||||||
|
setLayout(null); // Ajusta el diseño a null para posicionar los componentes manualmente
|
||||||
|
setBackground(Color.white);
|
||||||
|
|
||||||
|
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);
|
||||||
|
JLabel asientoDisponibleDialogo = new JLabel("Asiento disponible");
|
||||||
|
asientoDisponibleDialogo.setBounds(210, 5, 130, 50);
|
||||||
|
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);
|
||||||
|
JLabel asientoSeleccionadoDialogo = new JLabel("Asiento seleccionado");
|
||||||
|
asientoSeleccionadoDialogo.setBounds(410, 5, 130, 50);
|
||||||
|
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);
|
||||||
|
|
||||||
|
JLabel asientoNoDisponibleoDialogo = new JLabel("No Disponible");
|
||||||
|
asientoNoDisponibleoDialogo.setBounds(630, 5, 130, 50);
|
||||||
|
add(asientoNoDisponibleoDialogo);
|
||||||
|
|
||||||
|
JLabel sala = new JLabel("" );
|
||||||
|
sala.setBounds(210, 5, 130, 50);
|
||||||
|
add(sala);
|
||||||
|
|
||||||
|
precioLabel = new JLabel("Precio total: $0");
|
||||||
|
precioLabel.setBounds(0, 70, 100, 30);
|
||||||
|
add(precioLabel);
|
||||||
|
|
||||||
|
int botonesACrear = 7;
|
||||||
|
int posX = 30;
|
||||||
|
int posY = 150;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
Connection connection = conexion.getInstance();
|
||||||
|
PreparedStatement checkStatement = connection.prepareStatement("SELECT COUNT(*) as count FROM "+zona);
|
||||||
|
ResultSet resultSet = checkStatement.executeQuery();
|
||||||
|
resultSet.next();
|
||||||
|
int count = resultSet.getInt("count");
|
||||||
|
resultSet.close();
|
||||||
|
checkStatement.close();
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
// Si hay datos en la tabla, cargar los datos existentes
|
||||||
|
PreparedStatement selectStatement = connection.prepareStatement("SELECT id, estado FROM "+zona);
|
||||||
|
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 estado = rs.getString("estado");
|
||||||
|
|
||||||
|
BotonConImagen boton = new BotonConImagen(id);
|
||||||
|
boton.setBounds(posX, posY, 70, 70);
|
||||||
|
add(boton);
|
||||||
|
|
||||||
|
// Establecer el estado del botón según los datos recuperados de la base de datos
|
||||||
|
if (estado.equals("disponible")) {
|
||||||
|
boton.Disponible();
|
||||||
|
} else {
|
||||||
|
boton.Ocupado();
|
||||||
|
}
|
||||||
|
|
||||||
|
posX += 100;
|
||||||
|
contador++;
|
||||||
|
|
||||||
|
// Si se han creado 7 botones, hacer un salto
|
||||||
|
if (contador % 7 == 0) {
|
||||||
|
posX = 30;
|
||||||
|
posY += 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
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);
|
||||||
|
boton.setBounds(posX, posY, 70, 70);
|
||||||
|
add(boton);
|
||||||
|
|
||||||
|
PreparedStatement insertStatement = connection.prepareStatement("INSERT INTO "+zona+" (id, estado) VALUES (?, ?)");
|
||||||
|
insertStatement.setInt(1, DesignarId);
|
||||||
|
insertStatement.setString(2, "disponible");
|
||||||
|
insertStatement.executeUpdate();
|
||||||
|
insertStatement.close();
|
||||||
|
|
||||||
|
posX += 100;
|
||||||
|
}
|
||||||
|
posX = 30;
|
||||||
|
posY += 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
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() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int precioTotal = 0;
|
||||||
|
Connection con = conexion.getInstance();
|
||||||
|
for (Component component : getComponents()) {
|
||||||
|
if (component instanceof BotonConImagen) {
|
||||||
|
BotonConImagen boton = (BotonConImagen) component;
|
||||||
|
if (boton.isAmarillo()) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
Connection connection = conexion.getInstance();
|
||||||
|
PreparedStatement statement = connection.prepareStatement("UPDATE "+zona+" SET estado = ? WHERE id = ?");
|
||||||
|
statement.setString(1, "ocupado");
|
||||||
|
statement.setInt(2, boton.getId());
|
||||||
|
statement.executeUpdate();
|
||||||
|
statement.close();
|
||||||
|
|
||||||
|
System.out.println("Comprando el asiento seleccionado con el numero " + boton.getId());
|
||||||
|
|
||||||
|
boton.Ocupado();
|
||||||
|
|
||||||
|
precioTotal += boton.getPrecio();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.out.println("Error al insertar el asiento en la base de datos: " + ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
precioLabel.setText("Precio total: $" + precioTotal);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
add(boton2);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue