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