controlador de pantalla principal

This commit is contained in:
Soka_jplr 2024-03-10 22:24:23 -06:00
parent 03b14e2c37
commit 40b0a4189d
12 changed files with 322 additions and 136 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/build/
/dist/

View File

@ -0,0 +1,78 @@
package Controlador;
import Modelo.Asiento;
import Modelo.Consulta;
import Modelo.Sala;
import Modelo.Zona;
import Vista.SalaPrincipal;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
/*
* @author Juan Ska
*/
public class ControladorEcenario {
private SalaPrincipal VentanaSala;
Asiento [][] asientoZB;
Asiento [][] asientoZC;
Asiento [][] asientoZG;
Asiento [][] asientoZVip;
Zona [] zonas;
Consulta consulta = new Consulta();
Sala sala;
public ControladorEcenario(SalaPrincipal VentanaSala) {
this.VentanaSala = VentanaSala;
crearZonas();
crearAsientos();
crearGUI();
}
public void crearZonas(){
zonas = consulta.getZonas();
}
public void crearAsientos(){
asientoZB = consulta.getAsientosPorZona(zonas[0].getId(),5,7);
asientoZG = consulta.getAsientosPorZona(zonas[1].getId(),6,4);
asientoZVip = consulta.getAsientosPorZona(zonas[2].getId(),5,2);
asientoZC = consulta.getAsientosPorZona(zonas[3].getId(),5,7);
zonas[0].setAsientos(asientoZB);
zonas[1].setAsientos(asientoZG);
zonas[2].setAsientos(asientoZVip);
zonas[3].setAsientos(asientoZC);
sala = new Sala(0, zonas);
}
public void crearGUI(){
crearZonaB();
}
public void crearZonaB() {
//panelZonaB.setLayout(new GridLayout(7,5));
VentanaSala.getPanelB().setLayout(new GridLayout(7, 5));
JButton[][] matrizB = new JButton[7][5];
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 5; j++) {
ImageIcon imagen = new ImageIcon("src\\Images\\music.png");
JButton botonaleatorio = new JButton();
botonaleatorio.setBorderPainted(false);
botonaleatorio.setIcon(imagen);
if(zonas[0].getAsientos()[i][j].isEstado()==true){
botonaleatorio.setBackground(Color.GREEN);
}else{
botonaleatorio.setBackground(Color.RED);
}
botonaleatorio.setPreferredSize(new Dimension(30, 30));
matrizB[i][j] = botonaleatorio;
VentanaSala.getPanelB().add(matrizB[i][j]);
}
}
}
}

View File

@ -34,7 +34,8 @@ public class ControladorLogin implements ActionListener{
if(consulta.verificarUsuario(user)){
//Abre una nueva ventana
JOptionPane.showMessageDialog(null, "Bienvenido " + user.getNombre());
SalaPrincipal principal = new SalaPrincipal(user);
Usuario usuario = consulta.getUsuario(user);
SalaPrincipal principal = new SalaPrincipal(usuario);
principal.setVisible(true);
login.dispose();
}else{

View File

@ -1,12 +1,15 @@
package Controlador;
import Modelo.Consulta;
import Modelo.Usuario;
import Vista.Login;
import Vista.Registro;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JOptionPane;
/*
* @author Juan Ska
@ -24,7 +27,24 @@ public class ControladorRegistro extends Thread{
registro.getBtnRegistrar().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
String valorPass = new String(registro.getTxtPassword().getPassword());
//Valora si los campos etan vacios
if(registro.getTxtNombreUsuarioRegistro().getText().isEmpty()||valorPass.isEmpty()|| registro.getTxtCorreoRegistro().getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Error. Favor de llenar Todos los campos");
}else{
//Busca al usuario en la base de datos
Usuario user = new Usuario(registro.getTxtNombreUsuarioRegistro().getText(),valorPass, registro.getTxtCorreoRegistro().getText());
if(consulta.agregarUsuario(user)){
//Abre una nueva ventana
JOptionPane.showMessageDialog(null, user.getNombre() + "Registrado Correctamente");
Login principal = new Login();
principal.setLocationRelativeTo(null);
principal.setVisible(true);
registro.dispose();
}else{
JOptionPane.showMessageDialog(null, "Error. No se pudo crear el Usuario Intentalo más tarde");
}
}
}
});

View File

@ -1,11 +1,16 @@
package Main;
import Modelo.Usuario;
import Vista.Login;
import Vista.SalaPrincipal;
public class Main {
public static void main(String[] args) {
Login login = new Login();
/*Login login = new Login();
login.setLocationRelativeTo(null);
login.setVisible(true);*/
SalaPrincipal login = new SalaPrincipal(new Usuario());
login.setLocationRelativeTo(null);
login.setVisible(true);
}

View File

@ -8,40 +8,59 @@ package Modelo;
*
* @author citla
*/
public class Asiento extends Zona{
public class Asiento{
private String id;
private int id;
private String nombre;
private boolean estado;
private int id_zona;
public Asiento(String id, boolean estado, String nombre, double precio, Asiento[][] asientos, double montoRecaudado, Zona[] zonas) {
super(nombre, precio, asientos, montoRecaudado, zonas);
public Asiento(int id, String nombre, boolean estado, int id_zona) {
this.id = id;
this.nombre = nombre;
this.estado = estado;
this.id_zona = id_zona;
}
public String getId() {
public int getId() {
return id;
}
public boolean getEstado() {
public String getNombre() {
return nombre;
}
public boolean isEstado() {
return estado;
}
public void setId(String id) {
public int getId_zona() {
return id_zona;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setEstado(boolean estado) {
this.estado = estado;
}
public void comprarAsiento(double dinero){
public void setId_zona(int id_zona) {
this.id_zona = id_zona;
}
@Override
public String toString() {
return "Asiento{" + "id=" + id + ", estado=" + estado + '}';
return "Asiento{" + "id=" + id + ", nombre=" + nombre + ", estado=" + estado + ", id_zona=" + id_zona + '}';
}
}

View File

@ -52,4 +52,96 @@ public class Consulta {
return verificacion;
}
public boolean agregarUsuario(Usuario user) {
boolean verificacion =false;
try {
PreparedStatement ps;
conexion = cn.conectar();
ps= conexion.prepareStatement("INSERT INTO `usuarios`(`nombreUsuario`, `correo`, `password`, `tipo`) VALUES(?,?,?,?);");
ps.setString(1, user.getNombre());
ps.setString(2, user.getCorreoelectronico());
ps.setString(3, user.getPassword());
ps.setString(4, user.getTipo());
ps.executeUpdate();
verificacion = true;
cn.cerrarconexion();
} catch (SQLException e) {
System.err.println(e);
}
return verificacion;
}
public Usuario getUsuario(Usuario user) {
Usuario u = new Usuario();
try {
conexion = cn.conectar();
Statement stm;
String sql ="select * from Usuarios "
+ "where nombreUsuario= '"+user.getNombre()+"'";
stm = conexion.createStatement();
ResultSet resultado = stm.executeQuery(sql);
if(resultado.next()){
u.setNombre(resultado.getString(1));
u.setCorreoelectronico(resultado.getString(2));
u.setPassword(resultado.getString(3));
u.setTipo(resultado.getString(4));
}
cn.cerrarconexion();
} catch(SQLException e) {
System.err.println(e);
}
return u;
}
public Zona[] getZonas() {
Zona zonas[] = new Zona[4];
try {
conexion = cn.conectar();
Statement stm;
String sql ="select * from zona;";
stm = conexion.createStatement();
ResultSet resultado = stm.executeQuery(sql);
while(resultado.next()){
int i = resultado.getInt(1)-1;
zonas[i] = new Zona(resultado.getInt(1), resultado.getDouble(2));
}
cn.cerrarconexion();
} catch (Exception e) {
}
return zonas;
}
public Asiento[][] getAsientosPorZona(int id, int columna, int fila) {
Asiento [][] asientos = new Asiento[fila][columna];
Asiento [] asiento = new Asiento[columna*fila];
try {
conexion = cn.conectar();
Statement stm;
String sql ="select * from asiento " +
"where zona_id=" + id;
stm = conexion.createStatement();
ResultSet resultado = stm.executeQuery(sql);
int i=1;
while(resultado.next()){
asiento[i-1] = new Asiento(resultado.getInt(1), resultado.getString(2), resultado.getBoolean(3),resultado.getInt(4));
i++;
}
int k = 0;
for (int l = 0; l < fila; l++) {
for (int j = 0; j < columna; j++) {
if (k < i) { // Check if there are elements in asiento
asientos[l][j] = asiento[k];
} else {
}
k++;
}
}
cn.cerrarconexion();
} catch (SQLException e) {
System.out.println(e.toString());
}
return asientos;
}
}

View File

@ -8,10 +8,9 @@ package Modelo;
*
* @author citla
*/
public abstract class Sala {
public class Sala {
protected double montoRecaudado;
protected Zona zonas [];
protected Zona z;
public Sala(double montoRecaudado, Zona zonas []) {
this.montoRecaudado=montoRecaudado;
@ -26,11 +25,15 @@ public abstract class Sala {
this.montoRecaudado = montoRecaudado;
}
public double verMontoRecaudado(Zona z){
montoRecaudado= montoRecaudado + z.precio;
return montoRecaudado;
public Zona[] getZonas() {
return zonas;
}
public void setZonas(Zona[] zonas) {
this.zonas = zonas;
}
@Override
public String toString() {
return "Sala{" + "montoRecaudado=" + montoRecaudado + '}';

View File

@ -23,6 +23,14 @@ public class Usuario {
this.password = password;
}
public Usuario(String nombre, String password, String correoelectronico) {
this.nombre = nombre;
this.password = password;
this.correoelectronico = correoelectronico;
this.tipo = "usuario";
}
public String getNombre() {
return nombre;
@ -48,9 +56,17 @@ public class Usuario {
this.tipo = tipo;
}
public String getCorreoelectronico() {
return correoelectronico;
}
public void setCorreoelectronico(String correoelectronico) {
this.correoelectronico = correoelectronico;
}
@Override
public String toString() {
return "Usuario{" + "nombre=" + nombre + ", tipo=" + tipo + '}';
return "Usuario{" + "nombre=" + nombre + ", password=" + password + ", tipo=" + tipo + ", correoelectronico=" + correoelectronico + '}';
}

View File

@ -7,30 +7,50 @@ package Modelo;
*
* @author citla
*/
public abstract class Zona extends Sala { //protected las variables y metodos
public class Zona{ //protected las variables y metodos
protected String nombre;
protected int id;
protected double precio;
protected Asiento [][] asientos;
public Zona(String nombre, double precio, Asiento[][] asientos, double montoRecaudado, Zona[] zonas) {
super(montoRecaudado, zonas);
this.nombre = nombre;
public Zona(int id, double precio, Asiento[][] asientos) {
this.id = id;
this.precio = precio;
this.asientos = asientos;
}
public Zona(int id, double precio) {
this.id = id;
this.precio = precio;
}
public double getPrecio() {
return precio;
}
public Asiento[][] getAsientos() {
return asientos;
}
public void setAsientos(Asiento[][] asientos) {
this.asientos = asientos;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "Zona{" + "nombre=" + nombre + ", precio=" + precio + ", asientos=" + asientos + '}';
return "Zona{" + "id=" + id + ", precio=" + precio + '}';
}
}

View File

@ -1,36 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<NonVisualComponents>
<Component class="javax.swing.JButton" name="jButton18">
<Properties>
<Property name="text" type="java.lang.String" value="."/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="jButton20">
<Properties>
<Property name="text" type="java.lang.String" value="."/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="jButton27">
<Properties>
<Property name="text" type="java.lang.String" value="."/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton27ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel9">
<Properties>
<Property name="text" type="java.lang.String" value="jLabel9"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel10">
<Properties>
<Property name="text" type="java.lang.String" value="jLabel10"/>
</Properties>
</Component>
</NonVisualComponents>
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
</Properties>
@ -162,12 +132,9 @@
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="ff" green="ff" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" value="&lt;- Regresar"/>
<Property name="text" type="java.lang.String" value="Cerrar Sesi&#xf3;n"/>
<Property name="borderPainted" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
</Events>
</Component>
<Container class="javax.swing.JPanel" name="jPanel2">
<Properties>

View File

@ -4,6 +4,7 @@
*/
package Vista;
import Controlador.ControladorEcenario;
import Modelo.Usuario;
import java.awt.BorderLayout;
import java.awt.Color;
@ -15,6 +16,7 @@ import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
/**
*
@ -32,31 +34,12 @@ public class SalaPrincipal extends javax.swing.JFrame {
initComponents();
setTitle("Sala Principal");
setLocationRelativeTo(null);
crearZonaB();
crearZonaVip();
crearZonaG();
crearZonaC();
ControladorEcenario controlador = new ControladorEcenario(this);
}
public void crearZonaB() {
//panelZonaB.setLayout(new GridLayout(7,5));
panelB.setLayout(new GridLayout(7, 5));
JButton[][] matrizB = new JButton[7][5];
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 5; j++) {
imagen = new ImageIcon("C:/Users/reyes/Documents/ProyectoSalaConciertos/SalaDeConciertos/src/Vista/Images/armchair.png");
JButton botonaleatorio = new JButton();
botonaleatorio.setBorderPainted(false);
botonaleatorio.setIcon(imagen);
botonaleatorio.setBackground(new Color(243, 243, 243, 243));
botonaleatorio.setPreferredSize(new Dimension(30, 30));
matrizB[i][j] = botonaleatorio;
panelB.add(matrizB[i][j]);
}
}
}
public JButton[][] crearZonaVip() {
panelVip.setLayout(new GridLayout(2, 5));
@ -64,7 +47,7 @@ public class SalaPrincipal extends javax.swing.JFrame {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 5; j++) {
imagen = new ImageIcon("C:/Users/reyes/Documents/ProyectoSalaConciertos/SalaDeConciertos/src/Vista/Images/armchair.png");
imagen = new ImageIcon("src\\Images\\music.png");
JButton botonaleatorio = new JButton();
botonaleatorio.setBorderPainted(false);
botonaleatorio.setIcon(imagen);
@ -83,7 +66,7 @@ public class SalaPrincipal extends javax.swing.JFrame {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 6; j++) {
imagen = new ImageIcon("C:/Users/reyes/Documents/ProyectoSalaConciertos/SalaDeConciertos/src/Vista/Images/armchair.png");
imagen = new ImageIcon("src\\Images\\music.png");
JButton botonaleatorio = new JButton();
botonaleatorio.setBorderPainted(false);
botonaleatorio.setIcon(imagen);
@ -101,7 +84,7 @@ public class SalaPrincipal extends javax.swing.JFrame {
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 5; j++) {
imagen = new ImageIcon("C:/Users/reyes/Documents/ProyectoSalaConciertos/SalaDeConciertos/src/Vista/Images/armchair.png");
imagen = new ImageIcon("src\\Images\\music.png");
JButton botonaleatorio = new JButton();
botonaleatorio.setBorderPainted(false);
botonaleatorio.setIcon(imagen);
@ -113,6 +96,30 @@ public class SalaPrincipal extends javax.swing.JFrame {
}
}
public Usuario getUser() {
return user;
}
public JButton getjButton1() {
return jButton1;
}
public JPanel getPanelB() {
return panelB;
}
public JPanel getPanelC() {
return panelC;
}
public JPanel getPanelGeneral() {
return panelGeneral;
}
public JPanel getPanelVip() {
return panelVip;
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
@ -122,11 +129,6 @@ public class SalaPrincipal extends javax.swing.JFrame {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton18 = new javax.swing.JButton();
jButton20 = new javax.swing.JButton();
jButton27 = new javax.swing.JButton();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
@ -146,21 +148,6 @@ public class SalaPrincipal extends javax.swing.JFrame {
jLabel7 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jButton18.setText(".");
jButton20.setText(".");
jButton27.setText(".");
jButton27.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton27ActionPerformed(evt);
}
});
jLabel9.setText("jLabel9");
jLabel10.setText("jLabel10");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(238, 238, 238));
@ -175,13 +162,8 @@ public class SalaPrincipal extends javax.swing.JFrame {
jButton1.setBackground(new java.awt.Color(51, 51, 51));
jButton1.setForeground(new java.awt.Color(255, 255, 255));
jButton1.setText("<- Regresar");
jButton1.setText("Cerrar Sesión");
jButton1.setBorderPainted(false);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel2.setBackground(new java.awt.Color(255, 255, 255));
@ -286,8 +268,6 @@ public class SalaPrincipal extends javax.swing.JFrame {
.addGap(18, 18, Short.MAX_VALUE)
.addComponent(jLabel8)
.addGap(96, 96, 96))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(panelGeneral, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
@ -296,11 +276,8 @@ public class SalaPrincipal extends javax.swing.JFrame {
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelVip, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panelC, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(panelC, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(jLabel7)))
@ -403,25 +380,13 @@ public class SalaPrincipal extends javax.swing.JFrame {
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton27ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton27ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jButton27ActionPerformed
/**
* @param args the command line arguments
*/
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton18;
private javax.swing.JButton jButton20;
private javax.swing.JButton jButton27;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
@ -431,7 +396,6 @@ public class SalaPrincipal extends javax.swing.JFrame {
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel4;