cambios de Aldo
This commit is contained in:
parent
eb21517e43
commit
7bd8d9c651
NetBeansProjects/ticketCine
pom.xml
src/main/java/com/mycompany/ticketcine
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.mycompany</groupId>
|
||||
<artifactId>ticketCine</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.release>23</maven.compiler.release>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!-- MySQL Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.26</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<mainClass>com.mycompany.ticketcine.MainApp</mainClass>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* 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 com.mycompany.ticketcine;
|
||||
|
||||
public class Asiento {
|
||||
private int id;
|
||||
private int idSala;
|
||||
private int numeroAsiento;
|
||||
private String estado;
|
||||
|
||||
// Constructor
|
||||
public Asiento(int id, int idSala, int numeroAsiento, String estado) {
|
||||
this.id = id;
|
||||
this.idSala = idSala;
|
||||
this.numeroAsiento = numeroAsiento;
|
||||
this.estado = estado;
|
||||
}
|
||||
|
||||
// Getters y Setters
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getIdSala() {
|
||||
return idSala;
|
||||
}
|
||||
|
||||
public void setIdSala(int idSala) {
|
||||
this.idSala = idSala;
|
||||
}
|
||||
|
||||
public int getNumeroAsiento() {
|
||||
return numeroAsiento;
|
||||
}
|
||||
|
||||
public void setNumeroAsiento(int numeroAsiento) {
|
||||
this.numeroAsiento = numeroAsiento;
|
||||
}
|
||||
|
||||
public String getEstado() {
|
||||
return estado;
|
||||
}
|
||||
|
||||
public void setEstado(String estado) {
|
||||
this.estado = estado;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,165 @@
|
|||
package com.mycompany.ticketcine;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class CompraBoletosApp {
|
||||
private JFrame frame;
|
||||
private JComboBox<String> peliculasComboBox;
|
||||
private JComboBox<String> salasComboBox;
|
||||
private JPanel asientosPanel;
|
||||
private Map<Integer, JButton> asientosBotones;
|
||||
|
||||
public CompraBoletosApp() {
|
||||
frame = new JFrame("Compra de Boletos");
|
||||
frame.setSize(500, 500);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(new BorderLayout());
|
||||
|
||||
JPanel topPanel = new JPanel();
|
||||
peliculasComboBox = new JComboBox<>();
|
||||
salasComboBox = new JComboBox<>();
|
||||
topPanel.add(peliculasComboBox);
|
||||
topPanel.add(salasComboBox);
|
||||
frame.add(topPanel, BorderLayout.NORTH);
|
||||
|
||||
asientosPanel = new JPanel(new GridLayout(5, 5, 5, 5));
|
||||
frame.add(asientosPanel, BorderLayout.CENTER);
|
||||
|
||||
cargarPeliculas();
|
||||
cargarSalas();
|
||||
|
||||
salasComboBox.addActionListener(e -> cargarAsientos());
|
||||
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
private void cargarPeliculas() {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
Statement statement = connection.createStatement();
|
||||
ResultSet resultSet = statement.executeQuery("SELECT nombre FROM peliculas");
|
||||
while (resultSet.next()) {
|
||||
peliculasComboBox.addItem(resultSet.getString("nombre"));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void cargarSalas() {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
Statement statement = connection.createStatement();
|
||||
ResultSet resultSet = statement.executeQuery("SELECT nombre FROM salas");
|
||||
while (resultSet.next()) {
|
||||
salasComboBox.addItem(resultSet.getString("nombre"));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void cargarAsientos() {
|
||||
asientosPanel.removeAll();
|
||||
asientosBotones = new HashMap<>();
|
||||
|
||||
String salaSeleccionada = (String) salasComboBox.getSelectedItem();
|
||||
if (salaSeleccionada != null) {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
int idSala = obtenerIdSala(connection, salaSeleccionada);
|
||||
String query = "SELECT id_asiento, numero_asiento, estado FROM asientos WHERE id_sala = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
statement.setInt(1, idSala);
|
||||
try (ResultSet resultSet = statement.executeQuery()) {
|
||||
while (resultSet.next()) {
|
||||
int idAsiento = resultSet.getInt("id_asiento");
|
||||
int numeroAsiento = resultSet.getInt("numero_asiento");
|
||||
boolean disponible = "disponible".equals(resultSet.getString("estado"));
|
||||
|
||||
JButton asientoButton = new JButton(String.valueOf(numeroAsiento));
|
||||
asientoButton.setEnabled(disponible);
|
||||
asientoButton.addActionListener(e -> comprarBoleto(idAsiento, numeroAsiento));
|
||||
|
||||
asientosBotones.put(idAsiento, asientoButton);
|
||||
asientosPanel.add(asientoButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(frame, "Error al cargar los asientos: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
asientosPanel.revalidate();
|
||||
asientosPanel.repaint();
|
||||
}
|
||||
|
||||
private void comprarBoleto(int idAsiento, int numeroAsiento) {
|
||||
String peliculaSeleccionada = (String) peliculasComboBox.getSelectedItem();
|
||||
String salaSeleccionada = (String) salasComboBox.getSelectedItem();
|
||||
|
||||
if (peliculaSeleccionada != null && salaSeleccionada != null) {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
int idPelicula = obtenerIdPelicula(connection, peliculaSeleccionada);
|
||||
|
||||
String query = "INSERT INTO ventas_boletos (id_asiento, id_pelicula) VALUES (?, ?)";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
statement.setInt(1, idAsiento);
|
||||
statement.setInt(2, idPelicula);
|
||||
statement.executeUpdate();
|
||||
}
|
||||
|
||||
String updateQuery = "UPDATE asientos SET estado = 'vendido' WHERE id_asiento = ?";
|
||||
try (PreparedStatement updateStatement = connection.prepareStatement(updateQuery)) {
|
||||
updateStatement.setInt(1, idAsiento);
|
||||
updateStatement.executeUpdate();
|
||||
}
|
||||
|
||||
JOptionPane.showMessageDialog(frame, "Boleto comprado para " + peliculaSeleccionada +
|
||||
" en " + salaSeleccionada + " (Asiento: " + numeroAsiento + ")");
|
||||
|
||||
JButton asientoButton = asientosBotones.get(idAsiento);
|
||||
if (asientoButton != null) {
|
||||
asientoButton.setEnabled(false);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(frame, "Error al comprar el boleto: " + e.getMessage());
|
||||
}
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(frame, "Por favor, selecciona una película y sala.");
|
||||
}
|
||||
}
|
||||
|
||||
private int obtenerIdPelicula(Connection connection, String nombrePelicula) throws SQLException {
|
||||
String query = "SELECT id_pelicula FROM peliculas WHERE nombre = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
statement.setString(1, nombrePelicula);
|
||||
try (ResultSet resultSet = statement.executeQuery()) {
|
||||
if (resultSet.next()) {
|
||||
return resultSet.getInt("id_pelicula");
|
||||
} else {
|
||||
throw new SQLException("No se encontró la película: " + nombrePelicula);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int obtenerIdSala(Connection connection, String nombreSala) throws SQLException {
|
||||
String query = "SELECT id_sala FROM salas WHERE nombre = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
statement.setString(1, nombreSala);
|
||||
try (ResultSet resultSet = statement.executeQuery()) {
|
||||
if (resultSet.next()) {
|
||||
return resultSet.getInt("id_sala");
|
||||
} else {
|
||||
throw new SQLException("No se encontró la sala: " + nombreSala);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.mycompany.ticketcine;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class DatabaseConnection {
|
||||
private static final String URL = "jdbc:mysql://localhost:3306/cine";
|
||||
private static final String USER = "root";
|
||||
private static final String PASSWORD = "qwerty";
|
||||
|
||||
public static Connection getConnection() throws SQLException {
|
||||
return DriverManager.getConnection(URL, USER, PASSWORD);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* 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 com.mycompany.ticketcine;
|
||||
|
||||
public class MainApp {
|
||||
public static void main(String[] args) {
|
||||
// Inicializa la aplicación de compra de boletos
|
||||
new CompraBoletosApp();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package com.mycompany.ticketcine;
|
||||
|
||||
public class Pelicula {
|
||||
private int id;
|
||||
private String nombre;
|
||||
private int duracion;
|
||||
private String genero;
|
||||
|
||||
// Constructor
|
||||
public Pelicula(int id, String nombre, int duracion, String genero) {
|
||||
this.id = id;
|
||||
this.nombre = nombre;
|
||||
this.duracion = duracion;
|
||||
this.genero = genero;
|
||||
}
|
||||
|
||||
// Getters y Setters
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getNombre() {
|
||||
return nombre;
|
||||
}
|
||||
|
||||
public void setNombre(String nombre) {
|
||||
this.nombre = nombre;
|
||||
}
|
||||
|
||||
public int getDuracion() {
|
||||
return duracion;
|
||||
}
|
||||
|
||||
public void setDuracion(int duracion) {
|
||||
this.duracion = duracion;
|
||||
}
|
||||
|
||||
public String getGenero() {
|
||||
return genero;
|
||||
}
|
||||
|
||||
public void setGenero(String genero) {
|
||||
this.genero = genero;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* 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 com.mycompany.ticketcine;
|
||||
|
||||
public class Sala {
|
||||
private int id;
|
||||
private String nombre;
|
||||
private int capacidad;
|
||||
|
||||
// Constructor
|
||||
public Sala(int id, String nombre, int capacidad) {
|
||||
this.id = id;
|
||||
this.nombre = nombre;
|
||||
this.capacidad = capacidad;
|
||||
}
|
||||
|
||||
// Getters y Setters
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getNombre() {
|
||||
return nombre;
|
||||
}
|
||||
|
||||
public void setNombre(String nombre) {
|
||||
this.nombre = nombre;
|
||||
}
|
||||
|
||||
public int getCapacidad() {
|
||||
return capacidad;
|
||||
}
|
||||
|
||||
public void setCapacidad(int capacidad) {
|
||||
this.capacidad = capacidad;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* 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 com.mycompany.ticketcine;
|
||||
|
||||
public class VentaBoleto {
|
||||
private int id;
|
||||
private int idAsiento;
|
||||
private int idPelicula;
|
||||
private String fechaVenta;
|
||||
|
||||
// Constructor
|
||||
public VentaBoleto(int id, int idAsiento, int idPelicula, String fechaVenta) {
|
||||
this.id = id;
|
||||
this.idAsiento = idAsiento;
|
||||
this.idPelicula = idPelicula;
|
||||
this.fechaVenta = fechaVenta;
|
||||
}
|
||||
|
||||
// Getters y Setters
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getIdAsiento() {
|
||||
return idAsiento;
|
||||
}
|
||||
|
||||
public void setIdAsiento(int idAsiento) {
|
||||
this.idAsiento = idAsiento;
|
||||
}
|
||||
|
||||
public int getIdPelicula() {
|
||||
return idPelicula;
|
||||
}
|
||||
|
||||
public void setIdPelicula(int idPelicula) {
|
||||
this.idPelicula = idPelicula;
|
||||
}
|
||||
|
||||
public String getFechaVenta() {
|
||||
return fechaVenta;
|
||||
}
|
||||
|
||||
public void setFechaVenta(String fechaVenta) {
|
||||
this.fechaVenta = fechaVenta;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue