Sei sulla pagina 1di 7

CajeroAutomaticoGUI.

java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;

public class CajeroAutomaticoGUI extends JFrame implements ActionListener {


private JTextField nombreField, numeroCuentaField, tipoCuentaField,
saldoInicialField, valorField, cuentaDestinoField;
private JButton consultarSaldoButton, consignarButton, retirarButton,
transferirButton, registrarCuentaButton, cuentasRegistradasButton;
private List<Cuenta> cuentas;

public CajeroAutomaticoGUI() {
super("Cajero Automático");
cuentas = new ArrayList<>();

// Crear los componentes


JLabel nombreLabel = new JLabel("Nombre:");
nombreField = new JTextField(10);

JLabel numeroCuentaLabel = new JLabel("Número de Cuenta:");


numeroCuentaField = new JTextField(10);

JLabel tipoCuentaLabel = new JLabel("Tipo de Cuenta:");


tipoCuentaField = new JTextField(10);

JLabel saldoInicialLabel = new JLabel("Saldo Inicial:");


saldoInicialField = new JTextField(10);

JLabel cuentaDestinoLabel = new JLabel("Cuenta Destino:");


cuentaDestinoField = new JTextField(10);

consultarSaldoButton = new JButton("Consultar Saldo");


consignarButton = new JButton("Consignar");
retirarButton = new JButton("Retirar");
transferirButton = new JButton("Transferir");
registrarCuentaButton = new JButton("Registrar Cuenta");
cuentasRegistradasButton = new JButton("Cuentas Registradas");

// Agregar acción a los botones


consultarSaldoButton.addActionListener(this);
consignarButton.addActionListener(this);
retirarButton.addActionListener(this);
transferirButton.addActionListener(this);
registrarCuentaButton.addActionListener(this);
cuentasRegistradasButton.addActionListener(this);

// Crear el panel y agregar los componentes


JPanel panel = new JPanel();
panel.setLayout(new GridLayout(9, 2));
panel.add(nombreLabel);
panel.add(nombreField);
panel.add(numeroCuentaLabel);
panel.add(numeroCuentaField);
panel.add(tipoCuentaLabel);
panel.add(tipoCuentaField);
panel.add(saldoInicialLabel);
panel.add(saldoInicialField);
panel.add(cuentaDestinoLabel);
panel.add(cuentaDestinoField);
panel.add(consultarSaldoButton);
panel.add(consignarButton);
panel.add(retirarButton);
panel.add(transferirButton);
panel.add(registrarCuentaButton);
panel.add(cuentasRegistradasButton);

// Configurar el frame
add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null); // Centrar ventana
setVisible(true);
}

public void actionPerformed(ActionEvent e) {


if (e.getSource() == registrarCuentaButton) {
registrarCuenta();
} else if (e.getSource() == consultarSaldoButton) {
consultarSaldo();
} else if (e.getSource() == consignarButton) {
consignar();
} else if (e.getSource() == retirarButton) {
retirar();
} else if (e.getSource() == transferirButton) {
transferir();
} else if (e.getSource() == cuentasRegistradasButton) {
mostrarCuentasRegistradas();
}
}

public void registrarCuenta() {


String nombre = nombreField.getText();
String numeroCuenta = numeroCuentaField.getText();
String tipoCuenta = tipoCuentaField.getText();
double saldoInicial =
Double.parseDouble(saldoInicialField.getText());
Cuenta nuevaCuenta = new Cuenta(nombre, numeroCuenta, tipoCuenta,
saldoInicial);
cuentas.add(nuevaCuenta);
JOptionPane.showMessageDialog(this, "Cuenta registrada
exitosamente");
}

public void consultarSaldo() {


String numeroCuenta = JOptionPane.showInputDialog(this, "Ingrese
número de cuenta:");
Cuenta cuenta = buscarCuenta(numeroCuenta);
if (cuenta != null) {
JOptionPane.showMessageDialog(this, "Saldo actual de la cuenta "
+ numeroCuenta + ": " + cuenta.getSaldo());
} else {
JOptionPane.showMessageDialog(this, "La cuenta " + numeroCuenta
+ " no está registrada");
}
}

public void consignar() {


String numeroCuenta = JOptionPane.showInputDialog(this, "Ingrese
número de cuenta:");
Cuenta cuenta = buscarCuenta(numeroCuenta);
if (cuenta != null) {
double valor =
Double.parseDouble(JOptionPane.showInputDialog(this, "Ingrese valor a
consignar:"));
String numeroCuentaDestino = JOptionPane.showInputDialog(this,
"Ingrese número de cuenta destino:");
cuenta.consignar(valor, numeroCuentaDestino);
JOptionPane.showMessageDialog(this, "Consignación realizada
correctamente");
} else {
JOptionPane.showMessageDialog(this, "La cuenta " + numeroCuenta
+ " no está registrada");
}
}

public void retirar() {


String numeroCuenta = JOptionPane.showInputDialog(this, "Ingrese
número de cuenta:");
Cuenta cuenta = buscarCuenta(numeroCuenta);
if (cuenta != null) {
double valor =
Double.parseDouble(JOptionPane.showInputDialog(this, "Ingrese valor a
retirar:"));
cuenta.retirar(valor);
JOptionPane.showMessageDialog(this, "Retiro realizado
correctamente");
} else {
JOptionPane.showMessageDialog(this, "La cuenta " + numeroCuenta
+ " no está registrada");
}
}

public void transferir() {


String numeroCuentaOrigen = JOptionPane.showInputDialog(this,
"Ingrese número de cuenta origen:");
Cuenta cuentaOrigen = buscarCuenta(numeroCuentaOrigen);
if (cuentaOrigen != null) {
String numeroCuentaDestino = JOptionPane.showInputDialog(this,
"Ingrese número de cuenta destino:");
double valor =
Double.parseDouble(JOptionPane.showInputDialog(this, "Ingrese valor a
transferir:"));
cuentaOrigen.transferir(valor, numeroCuentaDestino);
JOptionPane.showMessageDialog(this, "Transferencia realizada
correctamente");
} else {
JOptionPane.showMessageDialog(this, "La cuenta origen " +
numeroCuentaOrigen + " no está registrada");
}
}

public void mostrarCuentasRegistradas() {


StringBuilder cuentasRegistradas = new StringBuilder("Cuentas
Registradas:\n");
for (Cuenta cuenta : cuentas) {
cuentasRegistradas.append("Nombre:
").append(cuenta.getNombre()).append(", Número de Cuenta:
").append(cuenta.getNumeroCuenta()).append(", Saldo:
").append(cuenta.getSaldo()).append("\n");
}
JOptionPane.showMessageDialog(this, cuentasRegistradas.toString());
}

public Cuenta buscarCuenta(String numeroCuenta) {


for (Cuenta cuenta : cuentas) {
if (cuenta.getNumeroCuenta().equals(numeroCuenta)) {
return cuenta;
}
}
return null;
}

public static void main(String[] args) {


new CajeroAutomaticoGUI();
}
}

Cuenta.java

import java.util.ArrayList;
import java.util.List;

class Cuenta {
private String nombre; // Nuevo campo para el nombre del titular de la
cuenta
private String numeroCuenta;
private String tipoCuenta;
private double saldo;
private List<String> cuentasConsignadas;

public Cuenta(String nombre, String numeroCuenta, String tipoCuenta,


double saldo) {
this.nombre = nombre;
this.numeroCuenta = numeroCuenta;
this.tipoCuenta = tipoCuenta;
this.saldo = saldo;
this.cuentasConsignadas = new ArrayList<>();
}

public String getNombre() {


return nombre;
}

public String getNumeroCuenta() {


return numeroCuenta;
}

public String getTipoCuenta() {


return tipoCuenta;
}

public double getSaldo() {


return saldo;
}

public void setSaldo(double saldo) {


this.saldo = saldo;
}

public void consultarSaldo() {


System.out.println("Saldo actual: " + saldo);
}

public void consignar(double valor, String numeroCuentaDestino) {


saldo += valor;
System.out.println("Consignación realizada por valor de: " + valor);
System.out.println("Saldo anterior: " + (saldo - valor));
System.out.println("Saldo disponible: " + saldo);
cuentasConsignadas.add(numeroCuentaDestino);
}

public void retirar(double valor) {


if (valor <= saldo) {
saldo -= valor;
System.out.println("Retiro realizado por valor de: " + valor);
System.out.println("Saldo anterior: " + (saldo + valor));
System.out.println("Saldo disponible: " + saldo);
} else {
System.out.println("Error: Fondos insuficientes");
System.out.println("Saldo disponible: " + saldo);
}
}

public void transferir(double valor, String numeroCuentaDestino) {


saldo -= valor;
System.out.println("Transferencia realizada por valor de: " +
valor);
System.out.println("Saldo anterior: " + (saldo + valor));
System.out.println("Saldo disponible: " + saldo);
cuentasConsignadas.add(numeroCuentaDestino);
}

public List<String> getCuentasConsignadas() {


return cuentasConsignadas;
}
}

Potrebbero piacerti anche