From 884fe890c689654d64ad94a455ea28b5c2acd5fb Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 3 Mar 2026 11:20:43 +0100 Subject: [PATCH] Prelievo + funzione log spostata --- build/classes/gui/GUIMyBank$1.class | Bin 805 -> 805 bytes build/classes/gui/GUIMyBank$2.class | Bin 808 -> 808 bytes build/classes/gui/GUIMyBank$3.class | Bin 814 -> 814 bytes build/classes/gui/GUIMyBank$4.class | Bin 814 -> 814 bytes build/classes/gui/GUIMyBank$5.class | Bin 814 -> 814 bytes build/classes/gui/GUIMyBank.class | Bin 12610 -> 13053 bytes build/classes/logic/ContoCorrente.class | Bin 3787 -> 5044 bytes build/classes/logic/MyBank.class | Bin 10881 -> 10118 bytes src/gui/GUIMyBank.java | 218 ++++++++++++++---------- src/logic/ContoCorrente.java | 32 +++- src/logic/MyBank.java | 24 +-- 11 files changed, 156 insertions(+), 118 deletions(-) diff --git a/build/classes/gui/GUIMyBank$1.class b/build/classes/gui/GUIMyBank$1.class index 889655e78d3927de0b35de34884d92e3243059b5..fe30ed28247a11cb06f7117c9a5a122464e6ce25 100644 GIT binary patch delta 23 ecmZ3=wv=r{ITK^l0~2G~ delta 23 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 delta 1581 zcmZuwT~kw66kR7ICfr;Qg9H%-{A%DbZKx|`2WPC$I?g!bpXgukg>mhBBe}JCxaaP3&fa^iz4kuykr!)>=ZgzZ z0d(P)Sz}RkZ^jlsnoVrQHU)Dcog5#F_Fd?Vr%oyqaH|lm>pc-a7mrTFQ_1Mi)Z}<7 z*}Av>U+Of-o54#o0@`Out0UAT_qH*r2Z_!iZ zPbQ}N)29*&E9>h2kEeSJ|4`@jzlBkCUavAfR2Ox(v0Yu((?&z&dxg+YeBx-jb}T(P znMh3~T56TCd>N(MrzPZKti>d_SW=&tR%whW zSCgF_t|5Ov4(XEO+RQLU7$khF>`DOd1JvB-UfBetc;F*Ak{u?=&oRp664ApuxeZv) zV9lXM$||s<9F;Z^rOBmI0Bi9DeZJ)9=oZNE=qqjy@$)HeB&&#Xgqh>`nyVm1vq(N` z9+iLD4x*kzuGs~VYs46iW(yl-*`h|3HNq}L#vXE6z;=p1k4z=oVLd{NaCcfFvkSDa zF|8=a4pgGe1_<+BRB}2kR)UJEchnQSR5(UdN1WfYsIdrP%76P4)dX#`LEm9ML3?H- z6nl)$e;jH_hg#QvymG3pbLNRX*vYnb5`7m(rkmZ_L#{m>l6@|w?jdoQCP}dXY6Fhb z@RDsi;#uK^y@$oxvrfB%J8A6-A-_Nj5leXIbaHy!hZ4S)+)G%o^b*E#f++@daVVV0 zHEY1-n`_od$CrTaP8Z1-I!$ppeIRe}MBd;MS8&FzWjJs2DWrtvd(fq>Xghc`Z*Ur? zmx3L^WJ1gDy~jIqBu{hzXO`q%Z_gGGd;)9aG4^C1lluv-V(TXDyk{}Re=X-r>iWiB gzqQv3_Ik-)zr&C83Ni6@6y3zFSOsq5XWT`_Tkp5fm;e9( diff --git a/build/classes/logic/MyBank.class b/build/classes/logic/MyBank.class index 520f37da58295281feb7e8ecd5784c7579887a0d..d0eb4ff1c4d1934d7c4bdbac5474687612c84cbf 100644 GIT binary patch delta 5199 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 QRe8gb7Wsi3leggiKRxb9>;M1& literal 10881 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 diff --git a/src/gui/GUIMyBank.java b/src/gui/GUIMyBank.java index c8c9496..34f8216 100644 --- a/src/gui/GUIMyBank.java +++ b/src/gui/GUIMyBank.java @@ -51,7 +51,8 @@ public class GUIMyBank extends javax.swing.JFrame { // //GEN-BEGIN:initComponents + // //GEN-BEGIN:initComponents private void initComponents() { lblNome = new javax.swing.JLabel(); @@ -139,89 +140,125 @@ public class GUIMyBank extends javax.swing.JFrame { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(99, 99, 99) - .addComponent(btnAprireContoCorrente)) - .addGroup(layout.createSequentialGroup() - .addGap(56, 56, 56) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(17, 17, 17) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblDataDiNascita) - .addComponent(lblSaldoIniziale)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(txtSaldoIniziale))) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblNome) - .addComponent(lblCognome) - .addComponent(lblCodiceFiscale)) - .addGap(26, 26, 26) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(lblNumeroContoCorrente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnVersamento) - .addComponent(btnPrelievo) - .addComponent(btnListaMovimenti) - .addComponent(txtNumeroContoCorrente)) - .addGap(23, 23, 23)) - ); + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(99, 99, 99) + .addComponent(btnAprireContoCorrente)) + .addGroup(layout.createSequentialGroup() + .addGap(56, 56, 56) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 272, + javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGap(17, 17, 17) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblDataDiNascita) + .addComponent(lblSaldoIniziale)) + .addGap(18, 18, 18) + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, + false) + .addGroup(layout.createSequentialGroup() + .addComponent(txtDataDiNascita, + javax.swing.GroupLayout.PREFERRED_SIZE, 64, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnDataDiNascita, + javax.swing.GroupLayout.PREFERRED_SIZE, 39, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSaldoIniziale))) + .addGroup(layout.createSequentialGroup() + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblNome) + .addComponent(lblCognome) + .addComponent(lblCodiceFiscale)) + .addGap(26, 26, 26) + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, + 113, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtCodiceFiscale, + javax.swing.GroupLayout.PREFERRED_SIZE, 115, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtCognome, + javax.swing.GroupLayout.PREFERRED_SIZE, 113, + javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, + Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(lblNumeroContoCorrente, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnVersamento) + .addComponent(btnPrelievo) + .addComponent(btnListaMovimenti) + .addComponent(txtNumeroContoCorrente)) + .addGap(23, 23, 23))); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(14, 14, 14) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblNome) - .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblNumeroContoCorrente)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblCognome) - .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtNumeroContoCorrente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblCodiceFiscale) - .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblDataDiNascita) - .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnDataDiNascita)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblSaldoIniziale) - .addComponent(txtSaldoIniziale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGroup(layout.createSequentialGroup() - .addComponent(btnVersamento) - .addGap(18, 18, 18) - .addComponent(btnPrelievo) - .addGap(18, 18, 18) - .addComponent(btnListaMovimenti))) - .addGap(18, 18, 18) - .addComponent(btnAprireContoCorrente) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(14, 14, 14)) - ); + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(14, 14, 14) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblNome) + .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblNumeroContoCorrente)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblCognome) + .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtNumeroContoCorrente, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblCodiceFiscale) + .addComponent(txtCodiceFiscale, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblDataDiNascita) + .addComponent(txtDataDiNascita, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnDataDiNascita)) + .addGap(18, 18, 18) + .addGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblSaldoIniziale) + .addComponent(txtSaldoIniziale, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(layout.createSequentialGroup() + .addComponent(btnVersamento) + .addGap(18, 18, 18) + .addComponent(btnPrelievo) + .addGap(18, 18, 18) + .addComponent(btnListaMovimenti))) + .addGap(18, 18, 18) + .addComponent(btnAprireContoCorrente) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, + Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(14, 14, 14))); pack(); }// //GEN-END:initComponents @@ -252,19 +289,20 @@ public class GUIMyBank extends javax.swing.JFrame { }// GEN-LAST:event_txtSaldoInizialeFocusGained private void btnVersamentoActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnVersamentoActionPerformed - String versamento; + double versamento; boolean error; do { error = false; - versamento = JOptionPane.showInputDialog("Inserire l'importo da versare:"); - if (!isNumeroValid(versamento)) { + try { + versamento = MyBank.valoreDouble(JOptionPane.showInputDialog("Inserire l'importo da versare:")); + + contoCorrenteAperto.versa(versamento); + lblSaldoIniziale.setText("Saldo"); + txtSaldoIniziale.setText(Double.toString(contoCorrenteAperto.getSaldo())); + } catch (NumberFormatException _) { JOptionPane.showMessageDialog(null, "L'importo che si desidera versare non è valido."); error = true; - } else { - contoCorrente.versa(Double.parseDouble(versamento)); - lblSaldoIniziale.setText("Saldo"); - txtSaldoIniziale.setText(Double.toString(contoCorrente.getSaldo())); } } while (error); }// GEN-LAST:event_btnVersamentoActionPerformed diff --git a/src/logic/ContoCorrente.java b/src/logic/ContoCorrente.java index adb7192..0c702ab 100644 --- a/src/logic/ContoCorrente.java +++ b/src/logic/ContoCorrente.java @@ -4,6 +4,10 @@ */ package logic; +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -39,7 +43,7 @@ public class ContoCorrente { this.saldo = saldo; this.numeroContoCorrente = numeroContoCorrente; numeriContiCorrenti.add(numeroContoCorrente); - MyBank.log("Apertura del conto con saldo iniziale di " + this.saldo, numeroContoCorrente); + log("Apertura del conto con saldo iniziale di " + this.saldo); } public static List getNumeriContiCorrenti() { @@ -56,26 +60,44 @@ public class ContoCorrente { public void versa(double quantita){ this.saldo += quantita; - MyBank.log("Versamento di " + quantita + " effettuato con successo.", this.numeroContoCorrente); + log("Versamento di " + quantita + " effettuato con successo."); logSaldoCorrente(); } public void preleva(double quantita) throws IllegalArgumentException{ if (quantita > this.saldo) { - MyBank.log("Tentato prelievo di " + quantita + " fallito per superamento saldo.", this.numeroContoCorrente); + log("Tentato prelievo di " + quantita + " fallito per superamento saldo."); logSaldoCorrente(); throw new IllegalArgumentException("La quantità desiderata eccede il saldo corrente."); } else { this.saldo -= quantita; - MyBank.log("Prelievo di " + quantita + " effettuato con successo.", this.numeroContoCorrente); + log("Prelievo di " + quantita + " effettuato con successo."); logSaldoCorrente(); } } private void logSaldoCorrente() { - MyBank.log("Saldo corrente: " + this.saldo + "\n", this.numeroContoCorrente); + log("Saldo corrente: " + this.saldo + "\n"); } + + private void log(String messaggio) { + StringBuilder sb = new StringBuilder(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.sss dd/MM/yyyy"); + try (BufferedWriter bw = new BufferedWriter( + new FileWriter(MyBank.PATH_CONTI + "movimenti_" + this.numeroContoCorrente + ".txt", true))) { + sb.append("["); + sb.append(sdf.format(new Date())); + sb.append("] "); + sb.append(messaggio); + sb.append("\n"); + + bw.write(sb.toString()); + } catch (IOException _) { + System.out.println("Errore nella scrittura del movimento."); + } + } + public String getNome() { return nome; } diff --git a/src/logic/MyBank.java b/src/logic/MyBank.java index c08c20c..5c32a04 100644 --- a/src/logic/MyBank.java +++ b/src/logic/MyBank.java @@ -35,7 +35,7 @@ public class MyBank { static Scanner sc = new Scanner(System.in); static final String ERRORE_GENERICO = "Errore: opzione non valida."; static final String ERRORE_CONTI_VUOTO = "Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."; - static final String PATH_CONTI = "./src/logic/conti/"; + public static final String PATH_CONTI = "./src/logic/conti/"; private static ArrayList conti = importaConti(); public static ArrayList getConti() { @@ -61,11 +61,6 @@ public class MyBank { switch (scelta) { case 0: break; - case 1: - System.out.println("Numero conto: " + conti.getLast().getNumeroContoCorrente()); - System.out.println("Conto corrente aggiunto con successo."); - pausa(); - break; case 2: if (conti.isEmpty()) { System.out.println(ERRORE_CONTI_VUOTO); @@ -255,23 +250,6 @@ public class MyBank { return contoCorrente; } - static void log(String messaggio, int numeroContoCorrente) { - StringBuilder sb = new StringBuilder(); - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.sss dd/MM/yyyy"); - try (BufferedWriter bw = new BufferedWriter( - new FileWriter(PATH_CONTI + "movimenti_" + numeroContoCorrente + ".txt", true))) { - sb.append("["); - sb.append(sdf.format(new Date())); - sb.append("] "); - sb.append(messaggio); - sb.append("\n"); - - bw.write(sb.toString()); - } catch (IOException _) { - System.out.println("Errore nella scrittura del movimento."); - } - } - static void stampaLog(ArrayList conti) { try (BufferedReader br = new BufferedReader( new FileReader(PATH_CONTI + "movimenti_" + selezionaConto(conti).getNumeroContoCorrente() + ".txt"))) {