package me.teridax.jcash.gui.transfer; import me.teridax.jcash.banking.accounts.Account; import me.teridax.jcash.banking.management.BankingManagementSystem; import static javax.swing.JOptionPane.ERROR_MESSAGE; import static javax.swing.JOptionPane.showMessageDialog; public class TransferDialog { public TransferDialog(Account account, BankingManagementSystem bms, Runnable onDeposit) { var view = new TransferView(); var data = new TransferData(bms); view.getTransfer().addActionListener(e -> { try { var amount = view.getAmount(); account.takeoff(amount); data.transferValue(amount, view.getBlz(), view.getIban()); onDeposit.run(); view.dispose(); } catch (IllegalArgumentException ex) { showMessageDialog(null, "invalid account", "Could not transfer", ERROR_MESSAGE); } }); view.getCancel().addActionListener(e -> view.dispose()); view.showDialog(); } }