Compare commits

...

5 Commits

Author SHA1 Message Date
David 90bca1959e Merge remote-tracking branch 'origin/main' 2024-03-11 07:06:24 -06:00
David d8eb643b72 Ventana Asientos Avances 2024-03-11 07:05:43 -06:00
David 9b61ac6a39 Ventana Asientos Avances 2024-03-10 21:12:56 -06:00
David e58ddbca6b Ventana Asientos Avances 2024-03-10 20:31:19 -06:00
David 2e26e90c9a Ventana Asientos Avances 2024-03-10 19:43:27 -06:00
6 changed files with 197 additions and 0 deletions

45
Asiento.java Normal file
View File

@ -0,0 +1,45 @@
public class Asiento {
private int x;
private int y;
private String zona;
private boolean disponibilidad;
public Asiento(int x, int y, String zona, boolean disponibilidad) {
this.x = x;
this.y = y;
this.zona = zona;
this.disponibilidad = disponibilidad;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public String getZona() {
return zona;
}
public void setZona(String zona) {
this.zona = zona;
}
public boolean isDisponibilidad() {
return disponibilidad;
}
public void setDisponibilidad(boolean disponibilidad) {
this.disponibilidad = disponibilidad;
}
}

View File

@ -0,0 +1,17 @@
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class GestiónBotónSeleccionarAsiento implements ChangeListener {
private Asiento asiento;
private SeleccionarAsientoV ventana;
public GestiónBotónSeleccionarAsiento(Asiento parAsiento, SeleccionarAsientoV parVentana) {
asiento = parAsiento;
ventana = parVentana;
}
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("i:" + asiento.getX() + " j:" + asiento.getY());
ventana.seleccionarAsientos(asiento);
}
}

135
SeleccionarAsientoV.java Normal file
View File

@ -0,0 +1,135 @@
import javax.swing.*;
import java.awt.*;
public class SeleccionarAsientoV extends JFrame {
private JPanel pSuperior = new JPanel(new FlowLayout(FlowLayout.LEFT));
private JButton bRegresar = new JButton("Regresar.");
private int noAsientosSeleccionados = 0;
private JLabel lSeleccionar = new JLabel("Asientos seleccionados: " + noAsientosSeleccionados);
private JPanel pInferior = new JPanel(new FlowLayout(FlowLayout.CENTER));
private int total = 0;
private JLabel lTotal = new JLabel("Total: " + total + "$");
private JButton bSeleccionar = new JButton("Seleccionar");
private JPanel pSala = new JPanel(new GridBagLayout());
private JToggleButton [][]bAsientos;
private Asiento [][] asientos;
public SeleccionarAsientoV(Asiento [][] parAsientos) throws HeadlessException {
super("Seleccionar Asiento");
this.setLayout(new BorderLayout());
asientos = parAsientos;
agregarComponentes();
crearCeldas(7,10);
iniciar();
}
public void agregarComponentes(){
pSuperior.add(this.bRegresar);
pSuperior.add(lSeleccionar);
pInferior.add(this.lTotal);
pInferior.add(this.bSeleccionar);
this.add(pSuperior,BorderLayout.NORTH);
this.add(pInferior,BorderLayout.SOUTH);
}
public void crearCeldas(int parX, int parY){
GridBagConstraints con = new GridBagConstraints();
bAsientos = new JToggleButton[parX][parY];
String zona = "";
JToggleButton tfAux;
for(int i = 0; i < parX; i++){
for(int j = 0; j < parY; j ++){
tfAux = new JToggleButton("");
if( ( (j >= 2) && (j <= 7) ) && ( (i >= 2) && (i <= 6) ) ){
tfAux.setBackground(Color.PINK);
zona = "A";
tfAux.setText("200$");
}
if( ((i == 1) && (j > 0) && (j < 9)) || ((j == 1) && (i > 0)) || ((j == 8) && (i > 0)) ){
tfAux.setBackground(Color.ORANGE);
zona = "B";
tfAux.setText("130$");
}
if( (i == 0) || (j == 0) || (j == 9)){
tfAux.setBackground(Color.YELLOW);
zona = "C";
tfAux.setText("65$");
}
if(asientos[i][j].isDisponibilidad()){
tfAux.setBackground(Color.DARK_GRAY);
tfAux.setText("ND");
}
tfAux.setSize(100,100);
//tfAux.addKeyListener(new GestiónTecladoEscribirCaracter(this,i,j));
tfAux.addChangeListener(new GestiónBotónSeleccionarAsiento(new Asiento(i,j,zona,asientos[i][j].isDisponibilidad()),this));
con.gridx = j;
con.gridy = i;
con.gridheight = 1;
con.gridwidth = 1;
System.out.println(i+" "+j+ " "+bAsientos.length);
bAsientos[i][j] = tfAux;
pSala.add(bAsientos[i][j],con);
}
}
pSala.setBounds(0,0,700,700);
this.add(pSala,BorderLayout.CENTER);
}
public void seleccionarAsientos(Asiento asiento){
int precio = 0;
int x = asiento.getX(), y = asiento.getY();
String zona = asiento.getZona();
switch (zona){
case "A":
precio = 200;
break;
case "B":
precio = 130;
break;
case "C":
precio = 65;
break;
}
if(!bAsientos[x][y].getText().equals("ND")) {
if (bAsientos[x][y].isSelected()) {
noAsientosSeleccionados++;
total += precio;
} else {
noAsientosSeleccionados--;
total -= precio;
}
}else{
bAsientos[x][y].setSelected(false);
}
lSeleccionar.setText("Asientos seleccionados: " + noAsientosSeleccionados);
lTotal.setText("Total: " + total + "$");
}
public void iniciar(){
this.setBounds(100,100,700,700);
//this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Binary file not shown.

Binary file not shown.