Lista movimenti

This commit is contained in:
La Programmatrice Verde
2026-02-17 18:35:35 +01:00
parent 7884fa4c75
commit 5525a4af02
11 changed files with 158 additions and 110 deletions

View File

@@ -23,8 +23,8 @@
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="1" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="17" max="-2" attributes="0"/> <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
@@ -68,6 +68,10 @@
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/> <EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/> <Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="56" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="272" max="-2" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace max="32767" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
</Group> </Group>
@@ -107,7 +111,9 @@
</Group> </Group>
<EmptySpace type="separate" max="-2" attributes="0"/> <EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/> <Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="58" max="32767" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="65" max="-2" attributes="0"/>
<EmptySpace pref="9" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@@ -196,6 +202,24 @@
<Properties> <Properties>
<Property name="text" type="java.lang.String" value="Lista movimenti"/> <Property name="text" type="java.lang.String" value="Lista movimenti"/>
</Properties> </Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnListaMovimentiActionPerformed"/>
</Events>
</Component> </Component>
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Component class="javax.swing.JTextArea" name="txtaListaMovimenti">
<Properties>
<Property name="columns" type="int" value="20"/>
<Property name="rows" type="int" value="5"/>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents> </SubComponents>
</Form> </Form>

View File

@@ -16,6 +16,7 @@ private String nome;
private String codiceFiscale; private String codiceFiscale;
private double saldo;private int numeroContoCorrente; private double saldo;private int numeroContoCorrente;
//private Date dataDiNascita; //private Date dataDiNascita;
private StringBuilder logOperazioni = new StringBuilder();
public ContoCorrente(String nome, String cognome, String codiceFiscale, /*Date dataDiNascita,*/ double saldo) { public ContoCorrente(String nome, String cognome, String codiceFiscale, /*Date dataDiNascita,*/ double saldo) {
this.nome = nome; this.nome = nome;
@@ -23,6 +24,7 @@ private String nome;
this.codiceFiscale = codiceFiscale; this.codiceFiscale = codiceFiscale;
//this.dataDiNascita = dataDiNascita; //this.dataDiNascita = dataDiNascita;
this.saldo = saldo; this.saldo = saldo;
logOperazione("Saldo iniziale di " + saldo);
} }
public double getSaldo() { public double getSaldo() {
@@ -31,14 +33,24 @@ private String nome;
public void versa(double quantita){ public void versa(double quantita){
this.saldo += quantita; this.saldo += quantita;
logOperazione("Versameno di " + quantita);
} }
public void preleva(double quantita) throws IllegalArgumentException{ public void preleva(double quantita) throws IllegalArgumentException {
if (quantita > this.saldo) { if (quantita > this.saldo) {
throw new IllegalArgumentException("La quantità desiderata eccede il saldo corrente."); throw new IllegalArgumentException("La quantità desiderata eccede il saldo corrente.");
} } else {
else {
this.saldo -= quantita; this.saldo -= quantita;
logOperazione("Prelievo di " + quantita);
} }
} }
private void logOperazione(String operazione) {
logOperazioni.append(operazione);
logOperazioni.append("\n");
}
public String getLogOperazioni() {
return logOperazioni.toString();
}
} }

View File

@@ -23,8 +23,8 @@
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="1" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="17" max="-2" attributes="0"/> <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
@@ -68,6 +68,10 @@
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/> <EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/> <Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="56" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="272" max="-2" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace max="32767" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
</Group> </Group>
@@ -107,7 +111,9 @@
</Group> </Group>
<EmptySpace type="separate" max="-2" attributes="0"/> <EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/> <Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="58" max="32767" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="65" max="-2" attributes="0"/>
<EmptySpace pref="9" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@@ -196,6 +202,24 @@
<Properties> <Properties>
<Property name="text" type="java.lang.String" value="Lista movimenti"/> <Property name="text" type="java.lang.String" value="Lista movimenti"/>
</Properties> </Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnListaMovimentiActionPerformed"/>
</Events>
</Component> </Component>
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Component class="javax.swing.JTextArea" name="txtaListaMovimenti">
<Properties>
<Property name="columns" type="int" value="20"/>
<Property name="rows" type="int" value="5"/>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents> </SubComponents>
</Form> </Form>

View File

@@ -33,6 +33,8 @@ public class GUIMyBank extends javax.swing.JFrame {
btnVersamento.setVisible(false); btnVersamento.setVisible(false);
btnPrelievo.setVisible(false); btnPrelievo.setVisible(false);
btnListaMovimenti.setVisible(false); btnListaMovimenti.setVisible(false);
txtaListaMovimenti.setVisible(false);
txtaListaMovimenti.setEditable(false);
} }
/** /**
@@ -43,7 +45,7 @@ public class GUIMyBank extends javax.swing.JFrame {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated // <editor-fold defaultstate="collapsed" desc="Generated
// <editor-fold defaultstate="collapsed" desc="Generated // <editor-fold defaultstate="collapsed" desc="Generated
// Code">//GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() { private void initComponents() {
lblNome = new javax.swing.JLabel(); lblNome = new javax.swing.JLabel();
@@ -61,6 +63,8 @@ public class GUIMyBank extends javax.swing.JFrame {
btnVersamento = new javax.swing.JButton(); btnVersamento = new javax.swing.JButton();
btnPrelievo = new javax.swing.JButton(); btnPrelievo = new javax.swing.JButton();
btnListaMovimenti = new javax.swing.JButton(); btnListaMovimenti = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
txtaListaMovimenti = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
@@ -116,115 +120,97 @@ public class GUIMyBank extends javax.swing.JFrame {
btnPrelievo.addActionListener(this::btnPrelievoActionPerformed); btnPrelievo.addActionListener(this::btnPrelievoActionPerformed);
btnListaMovimenti.setText("Lista movimenti"); btnListaMovimenti.setText("Lista movimenti");
btnListaMovimenti.addActionListener(this::btnListaMovimentiActionPerformed);
txtaListaMovimenti.setColumns(20);
txtaListaMovimenti.setRows(5);
jScrollPane1.setViewportView(txtaListaMovimenti);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout); getContentPane().setLayout(layout);
layout.setHorizontalGroup( layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout .addGroup(layout.createSequentialGroup()
.createSequentialGroup() .addGap(17, 17, 17)
.addGap(17, 17, 17) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout .addGroup(layout.createSequentialGroup()
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addComponent(lblDataDiNascita)
.addGroup(layout.createParallelGroup( .addComponent(lblSaldoIniziale))
javax.swing.GroupLayout.Alignment.LEADING) .addGap(18, 18, 18)
.addComponent(lblDataDiNascita) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(lblSaldoIniziale)) .addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18) .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup( .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
javax.swing.GroupLayout.Alignment.LEADING, .addComponent(btnDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
false) .addComponent(txtSaldoIniziale))
.addGroup(layout.createSequentialGroup() .addGap(37, 37, 37)
.addComponent(txtDataDiNascita, .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
javax.swing.GroupLayout.PREFERRED_SIZE, .addComponent(btnVersamento)
64, .addComponent(btnPrelievo)
javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnListaMovimenti)))
.addPreferredGap( .addGroup(layout.createSequentialGroup()
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnDataDiNascita, .addComponent(lblNome)
javax.swing.GroupLayout.PREFERRED_SIZE, .addComponent(lblCognome)
39, .addComponent(lblCodiceFiscale))
javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(26, 26, 26)
.addComponent(txtSaldoIniziale)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(37, 37, 37) .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup( .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addComponent(btnVersamento) .addGroup(layout.createSequentialGroup()
.addComponent(btnPrelievo) .addGap(99, 99, 99)
.addComponent(btnListaMovimenti))) .addComponent(btnAprireContoCorrente))
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup( .addGap(56, 56, 56)
javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(lblNome) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.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)))))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addGap(99, 99, 99)
.addComponent(btnAprireContoCorrente)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
layout.setVerticalGroup( layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGap(14, 14, 14) .addGap(14, 14, 14)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblNome) .addComponent(lblNome)
.addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
javax.swing.GroupLayout.DEFAULT_SIZE, .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(lblCognome)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblCognome) .addComponent(btnVersamento))
.addComponent(txtCognome, javax.swing.GroupLayout.PREFERRED_SIZE, .addGap(18, 18, 18)
javax.swing.GroupLayout.DEFAULT_SIZE, .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblCodiceFiscale)
.addComponent(btnVersamento)) .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18) .addComponent(btnPrelievo))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGap(18, 18, 18)
.addComponent(lblCodiceFiscale) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, .addComponent(lblDataDiNascita)
javax.swing.GroupLayout.DEFAULT_SIZE, .addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnDataDiNascita)
.addComponent(btnPrelievo)) .addComponent(btnListaMovimenti))
.addGap(18, 18, 18) .addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblDataDiNascita) .addComponent(lblSaldoIniziale)
.addComponent(txtDataDiNascita, javax.swing.GroupLayout.PREFERRED_SIZE, .addComponent(txtSaldoIniziale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
javax.swing.GroupLayout.DEFAULT_SIZE, .addGap(18, 18, 18)
javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnAprireContoCorrente)
.addComponent(btnDataDiNascita) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btnListaMovimenti)) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18) .addContainerGap(9, Short.MAX_VALUE))
.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))
.addGap(18, 18, 18)
.addComponent(btnAprireContoCorrente)
.addContainerGap(58, Short.MAX_VALUE)));
pack(); pack();
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
private void btnListaMovimentiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnListaMovimentiActionPerformed
txtaListaMovimenti.setText(contoCorrente.getLogOperazioni());
txtaListaMovimenti.setVisible(true);
}//GEN-LAST:event_btnListaMovimentiActionPerformed
private void txtNomeFocusGained(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_txtNomeFocusGained private void txtNomeFocusGained(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_txtNomeFocusGained
txtNome.setBorder(borderOriginale); txtNome.setBorder(borderOriginale);
}// GEN-LAST:event_txtNomeFocusGained }// GEN-LAST:event_txtNomeFocusGained
@@ -408,6 +394,7 @@ public class GUIMyBank extends javax.swing.JFrame {
private javax.swing.JButton btnListaMovimenti; private javax.swing.JButton btnListaMovimenti;
private javax.swing.JButton btnPrelievo; private javax.swing.JButton btnPrelievo;
private javax.swing.JButton btnVersamento; private javax.swing.JButton btnVersamento;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblCodiceFiscale; private javax.swing.JLabel lblCodiceFiscale;
private javax.swing.JLabel lblCognome; private javax.swing.JLabel lblCognome;
private javax.swing.JLabel lblDataDiNascita; private javax.swing.JLabel lblDataDiNascita;
@@ -418,5 +405,6 @@ public class GUIMyBank extends javax.swing.JFrame {
private javax.swing.JTextField txtDataDiNascita; private javax.swing.JTextField txtDataDiNascita;
private javax.swing.JTextField txtNome; private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtSaldoIniziale; private javax.swing.JTextField txtSaldoIniziale;
private javax.swing.JTextArea txtaListaMovimenti;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables
} }