Funcionalidad de selección de asiento completa

This commit is contained in:
David 2024-03-15 19:47:59 -06:00
parent 078256ac1b
commit 12b85df405
4 changed files with 29 additions and 4 deletions

View File

@ -1,7 +1,9 @@
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GestiónBotónSeleccionarAsiento implements ChangeListener { public class GestiónBotónSeleccionarAsiento implements ActionListener {
private Asiento asiento; private Asiento asiento;
private SeleccionarAsientoV ventana; private SeleccionarAsientoV ventana;
public GestiónBotónSeleccionarAsiento(Asiento parAsiento, SeleccionarAsientoV parVentana) { public GestiónBotónSeleccionarAsiento(Asiento parAsiento, SeleccionarAsientoV parVentana) {
@ -10,7 +12,7 @@ public class GestiónBotónSeleccionarAsiento implements ChangeListener {
} }
@Override @Override
public void stateChanged(ChangeEvent e) { public void actionPerformed(ActionEvent e) {
System.out.println("i:" + asiento.getX() + " j:" + asiento.getY()); System.out.println("i:" + asiento.getX() + " j:" + asiento.getY());
ventana.seleccionarAsientos(asiento); ventana.seleccionarAsientos(asiento);
} }

View File

@ -1,8 +1,11 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.util.ArrayList;
import java.util.List;
public class SeleccionarAsientoV extends JPanel { public class SeleccionarAsientoV extends JPanel {
JPanel panel;
private JPanel pSuperior = new JPanel(new FlowLayout(FlowLayout.LEFT)); private JPanel pSuperior = new JPanel(new FlowLayout(FlowLayout.LEFT));
private JButton bRegresar = new JButton("Regresar."); private JButton bRegresar = new JButton("Regresar.");
private int noAsientosSeleccionados = 0; private int noAsientosSeleccionados = 0;
@ -19,13 +22,15 @@ public class SeleccionarAsientoV extends JPanel {
private Asiento [][] asientos; private Asiento [][] asientos;
List<Asiento> asientosSeleccionados = new ArrayList<Asiento>();
public SeleccionarAsientoV(Asiento [][] parAsientos) throws HeadlessException { public SeleccionarAsientoV(Asiento [][] parAsientos) throws HeadlessException {
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
asientos = parAsientos; asientos = parAsientos;
agregarComponentes(); agregarComponentes();
añadirListeners();
crearCeldas(7,10); crearCeldas(7,10);
} }
@ -73,7 +78,7 @@ public class SeleccionarAsientoV extends JPanel {
} }
tfAux.setSize(100,100); tfAux.setSize(100,100);
//tfAux.addKeyListener(new GestiónTecladoEscribirCaracter(this,i,j)); //tfAux.addKeyListener(new GestiónTecladoEscribirCaracter(this,i,j));
tfAux.addChangeListener(new GestiónBotónSeleccionarAsiento(new Asiento(i,j,zona,asientos[i][j].isDisponibilidad()),this)); tfAux.addActionListener(new GestiónBotónSeleccionarAsiento(new Asiento(i,j,zona,asientos[i][j].isDisponibilidad()),this));
con.gridx = j; con.gridx = j;
con.gridy = i; con.gridy = i;
con.gridheight = 1; con.gridheight = 1;
@ -88,6 +93,10 @@ public class SeleccionarAsientoV extends JPanel {
this.add(pSala,BorderLayout.CENTER); this.add(pSala,BorderLayout.CENTER);
} }
public void añadirListeners(){
//bRegresar.addActionListener(new GestiónBotónCambiarVentana(this,new ventana2().panelV2));
}
public void seleccionarAsientos(Asiento asiento){ public void seleccionarAsientos(Asiento asiento){
int precio = 0; int precio = 0;
@ -112,14 +121,28 @@ public class SeleccionarAsientoV extends JPanel {
if (bAsientos[x][y].isSelected()) { if (bAsientos[x][y].isSelected()) {
noAsientosSeleccionados++; noAsientosSeleccionados++;
total += precio; total += precio;
asientosSeleccionados.add(asiento);
} else { } else {
noAsientosSeleccionados--; noAsientosSeleccionados--;
total -= precio; total -= precio;
for(int a = 0; a < asientosSeleccionados.size() ;a++){
if(asientosSeleccionados.get(a).equals(asiento)){
asientosSeleccionados.remove(a);
}
}
} }
}else{ }else{
bAsientos[x][y].setSelected(false); bAsientos[x][y].setSelected(false);
} }
System.out.print("[");
for(int a = 0; a < asientosSeleccionados.size() ;a++){
System.out.print(asientosSeleccionados.get(a).getX() + " " + asientosSeleccionados.get(a).getY() + ", " );
}
System.out.println("]");
lSeleccionar.setText("Asientos seleccionados: " + noAsientosSeleccionados); lSeleccionar.setText("Asientos seleccionados: " + noAsientosSeleccionados);
lTotal.setText("Total: " + total + "$"); lTotal.setText("Total: " + total + "$");
} }