Aggiungi conto corrente

This commit is contained in:
La Programmatrice Verde
2026-03-03 11:11:53 +01:00
parent ea2f398285
commit d6a6651ad7
12 changed files with 298 additions and 302 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -25,6 +25,17 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
</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>
<EmptySpace max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
@@ -42,12 +53,6 @@
</Group>
<Component id="txtSaldoIniziale" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="37" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="btnVersamento" min="-2" max="-2" attributes="0"/>
<Component id="btnPrelievo" min="-2" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
@@ -63,17 +68,15 @@
</Group>
</Group>
</Group>
<EmptySpace pref="39" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="lblNumeroContoCorrente" max="32767" attributes="0"/>
<Component id="btnVersamento" min="-2" max="-2" attributes="0"/>
<Component id="btnPrelievo" min="-2" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" min="-2" max="-2" attributes="0"/>
<Component id="txtNumeroContoCorrente" alignment="0" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
</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>
<EmptySpace max="32767" attributes="0"/>
<EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -84,36 +87,46 @@
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblNome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtNome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="lblNumeroContoCorrente" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblCognome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtCognome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnVersamento" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtNumeroContoCorrente" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblCodiceFiscale" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtCodiceFiscale" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnPrelievo" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblDataDiNascita" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtDataDiNascita" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnDataDiNascita" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblSaldoIniziale" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtSaldoIniziale" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" attributes="0">
<Component id="btnVersamento" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnPrelievo" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<EmptySpace pref="37" max="32767" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="65" max="-2" attributes="0"/>
<EmptySpace pref="9" max="32767" attributes="0"/>
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -221,5 +234,12 @@
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JLabel" name="lblNumeroContoCorrente">
<Properties>
<Property name="text" type="java.lang.String" value="Numero conto corrente:"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="txtNumeroContoCorrente">
</Component>
</SubComponents>
</Form>

Binary file not shown.

View File

@@ -2,6 +2,8 @@
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group/>
<group>
<file>file:/home/Verde/git/GUIMyBank/src/gui/GUIMyBank.java</file>
</group>
</open-files>
</project-private>

View File

@@ -25,6 +25,17 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
</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>
<EmptySpace max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
@@ -42,12 +53,6 @@
</Group>
<Component id="txtSaldoIniziale" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="37" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="btnVersamento" min="-2" max="-2" attributes="0"/>
<Component id="btnPrelievo" min="-2" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
@@ -63,17 +68,15 @@
</Group>
</Group>
</Group>
<EmptySpace pref="39" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="lblNumeroContoCorrente" max="32767" attributes="0"/>
<Component id="btnVersamento" min="-2" max="-2" attributes="0"/>
<Component id="btnPrelievo" min="-2" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" min="-2" max="-2" attributes="0"/>
<Component id="txtNumeroContoCorrente" alignment="0" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
</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>
<EmptySpace max="32767" attributes="0"/>
<EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -84,36 +87,46 @@
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblNome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtNome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="lblNumeroContoCorrente" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblCognome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtCognome" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnVersamento" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtNumeroContoCorrente" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblCodiceFiscale" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtCodiceFiscale" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnPrelievo" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblDataDiNascita" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtDataDiNascita" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnDataDiNascita" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lblSaldoIniziale" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtSaldoIniziale" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" attributes="0">
<Component id="btnVersamento" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnPrelievo" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnListaMovimenti" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btnAprireContoCorrente" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<EmptySpace pref="37" max="32767" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="65" max="-2" attributes="0"/>
<EmptySpace pref="9" max="32767" attributes="0"/>
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -221,5 +234,12 @@
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JLabel" name="lblNumeroContoCorrente">
<Properties>
<Property name="text" type="java.lang.String" value="Numero conto corrente:"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="txtNumeroContoCorrente">
</Component>
</SubComponents>
</Form>

View File

@@ -5,6 +5,8 @@
package gui;
import java.awt.Color;
import java.text.ParseException;
import java.util.Date;
import java.util.regex.Pattern;
import logic.MyBank;
import logic.ContoCorrente;
@@ -20,7 +22,7 @@ import javax.swing.border.LineBorder;
public class GUIMyBank extends javax.swing.JFrame {
static Border borderOriginale = UIManager.getBorder("TextField.border");
static ContoCorrente contoCorrente;
static ContoCorrente contoCorrenteAperto;
private static final java.util.logging.Logger logger = java.util.logging.Logger
.getLogger(GUIMyBank.class.getName());
@@ -30,6 +32,9 @@ public class GUIMyBank extends javax.swing.JFrame {
*/
public GUIMyBank() {
initComponents();
lblNumeroContoCorrente.setVisible(false);
txtNumeroContoCorrente.setVisible(false);
txtNumeroContoCorrente.setEditable(false);
btnVersamento.setVisible(false);
btnPrelievo.setVisible(false);
btnListaMovimenti.setVisible(false);
@@ -45,6 +50,7 @@ public class GUIMyBank extends javax.swing.JFrame {
@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
private void initComponents() {
@@ -65,6 +71,8 @@ public class GUIMyBank extends javax.swing.JFrame {
btnListaMovimenti = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
txtaListaMovimenti = new javax.swing.JTextArea();
lblNumeroContoCorrente = new javax.swing.JLabel();
txtNumeroContoCorrente = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
@@ -126,12 +134,21 @@ public class GUIMyBank extends javax.swing.JFrame {
txtaListaMovimenti.setRows(5);
jScrollPane1.setViewportView(txtaListaMovimenti);
lblNumeroContoCorrente.setText("Numero conto corrente:");
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)
@@ -145,12 +162,7 @@ public class GUIMyBank extends javax.swing.JFrame {
.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))
.addGap(37, 37, 37)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnVersamento)
.addComponent(btnPrelievo)
.addComponent(btnListaMovimenti)))
.addComponent(txtSaldoIniziale)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblNome)
@@ -160,14 +172,15 @@ public class GUIMyBank extends javax.swing.JFrame {
.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(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))
.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)
@@ -175,41 +188,48 @@ public class GUIMyBank extends javax.swing.JFrame {
.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(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(btnVersamento))
.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)
.addComponent(btnPrelievo))
.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)
.addComponent(btnListaMovimenti))
.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))
.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.UNRELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(9, Short.MAX_VALUE))
.addGap(14, 14, 14))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnListaMovimentiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnListaMovimentiActionPerformed
private void btnListaMovimentiActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnListaMovimentiActionPerformed
txtaListaMovimenti.setText(contoCorrente.getLogOperazioni());
txtaListaMovimenti.setVisible(true);
}//GEN-LAST:event_btnListaMovimentiActionPerformed
}// GEN-LAST:event_btnListaMovimentiActionPerformed
private void txtNomeFocusGained(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_txtNomeFocusGained
txtNome.setBorder(borderOriginale);
@@ -273,18 +293,20 @@ public class GUIMyBank extends javax.swing.JFrame {
}// GEN-LAST:event_btnPrelievoActionPerformed
private void btnAprireContoCorrenteActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnAprireContoCorrenteActionPerformed
String nome = txtNome.getText();
String cognome = txtCognome.getText();
String codiceFiscale = txtCodiceFiscale.getText();
// String dataDiNascita = txtDataDiNascita.getText();
String saldoIniziale = txtSaldoIniziale.getText();
String nome = txtNome.getText().trim();
String cognome = txtCognome.getText().trim();
String codiceFiscale = txtCodiceFiscale.getText().trim().toUpperCase();
String dataDiNascitaString = txtDataDiNascita.getText().trim();
Date dataDiNascita;
String saldoInizialeString = txtSaldoIniziale.getText().trim();
double saldoIniziale;
boolean nomeEmpty = nome.isEmpty();
boolean cognomeEmpty = cognome.isEmpty();
boolean codiceFiscaleEmpty = codiceFiscale.isEmpty();
// boolean dataDiNascitaEmpty = dataDiNascita.isEmpty();
boolean saldoInizialeEmpty = saldoIniziale.isEmpty();
boolean dataDiNascitaEmpty = dataDiNascitaString.isEmpty();
boolean saldoInizialeEmpty = saldoInizialeString.isEmpty();
if (nomeEmpty || cognomeEmpty || codiceFiscaleEmpty /* || dataDiNascitaEmpty */ || saldoInizialeEmpty) {
if (nomeEmpty || cognomeEmpty || codiceFiscaleEmpty || dataDiNascitaEmpty || saldoInizialeEmpty) {
if (nomeEmpty) {
txtNome.setBorder(new LineBorder(Color.red));
}
@@ -294,11 +316,9 @@ public class GUIMyBank extends javax.swing.JFrame {
if (codiceFiscaleEmpty) {
txtCodiceFiscale.setBorder(new LineBorder(Color.red));
}
/*
* if(dataDiNascitaEmpty){
* txtDataDiNascita.setBorder(new LineBorder(Color.red));
* }
*/
if (dataDiNascitaEmpty) {
txtDataDiNascita.setBorder(new LineBorder(Color.red));
}
if (saldoInizialeEmpty) {
txtSaldoIniziale.setBorder(new LineBorder(Color.red));
}
@@ -306,23 +326,33 @@ public class GUIMyBank extends javax.swing.JFrame {
return;
}
if (isCodiceFiscaleValid(codiceFiscale)) {
if (MyBank.isCodiceFiscaleValid(codiceFiscale)) {
JOptionPane.showMessageDialog(null, "Il codice fiscale non è valido.");
txtCodiceFiscale.setBorder(new LineBorder(Color.red));
return;
}
// TODO: gestione data
// if(dataDiNascita.isEmpty()){
// dataDiNascitaError = true;
// }
if (!isNumeroValid(saldoIniziale)) {
try {
dataDiNascita = MyBank.dataDiNascita(dataDiNascitaString);
} catch (ParseException _) {
JOptionPane.showMessageDialog(null, "La data di nascita non è valida.");
txtDataDiNascita.setBorder(new LineBorder(Color.red));
return;
}
try {
saldoIniziale = MyBank.valoreDouble(saldoInizialeString);
} catch (NumberFormatException _) {
JOptionPane.showMessageDialog(null, "Il saldo iniziale non è valido.");
txtSaldoIniziale.setBorder(new LineBorder(Color.red));
return;
}
contoCorrente = new ContoCorrente(nome, cognome, codiceFiscale, Double.parseDouble(saldoIniziale));
this.contoCorrenteAperto = MyBank.aggiungiConto(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale);
txtNumeroContoCorrente.setText(Integer.toString(MyBank.getConti().getLast().getNumeroContoCorrente()));
lblNumeroContoCorrente.setVisible(true);
txtNumeroContoCorrente.setVisible(true);
btnVersamento.setVisible(true);
btnPrelievo.setVisible(true);
btnListaMovimenti.setVisible(true);
@@ -336,29 +366,6 @@ public class GUIMyBank extends javax.swing.JFrame {
}// GEN-LAST:event_btnAprireContoCorrenteActionPerformed
boolean isCodiceFiscaleValid(String codiceFiscale) {
Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]");
return !pattern.matcher(codiceFiscale).find();
}
boolean isNumeroValid(String numero) {
boolean isNumeroValid = true;
double valoreNumero;
try {
valoreNumero = Double.parseDouble(numero);
if (valoreNumero <= 0) {
isNumeroValid = false;
}
} catch (NumberFormatException _) {
isNumeroValid = false;
}
return isNumeroValid;
}
/**
* @param args the command line arguments
*/
@@ -399,11 +406,13 @@ public class GUIMyBank extends javax.swing.JFrame {
private javax.swing.JLabel lblCognome;
private javax.swing.JLabel lblDataDiNascita;
private javax.swing.JLabel lblNome;
private javax.swing.JLabel lblNumeroContoCorrente;
private javax.swing.JLabel lblSaldoIniziale;
private javax.swing.JTextField txtCodiceFiscale;
private javax.swing.JTextField txtCognome;
private javax.swing.JTextField txtDataDiNascita;
private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtNumeroContoCorrente;
private javax.swing.JTextField txtSaldoIniziale;
private javax.swing.JTextArea txtaListaMovimenti;
// End of variables declaration//GEN-END:variables

View File

@@ -36,10 +36,14 @@ public class MyBank {
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/";
private static ArrayList<ContoCorrente> conti = importaConti();
public static ArrayList<ContoCorrente> getConti() {
return conti;
}
public static void main(String[] args) {
int scelta = -1;
ArrayList<ContoCorrente> conti = importaConti();
do {
System.out.println("Scegliere un'opzione:");
@@ -58,7 +62,6 @@ public class MyBank {
case 0:
break;
case 1:
aggiungiConto(conti);
System.out.println("Numero conto: " + conti.getLast().getNumeroContoCorrente());
System.out.println("Conto corrente aggiunto con successo.");
pausa();
@@ -143,36 +146,20 @@ public class MyBank {
return conti;
}
static void aggiungiConto(ArrayList<ContoCorrente> conti) {
String nome;
String cognome;
String codiceFiscale;
Date dataDiNascita;
double saldoIniziale;
public static ContoCorrente aggiungiConto(String nome, String cognome, String codiceFiscale, Date dataDiNascita,
double saldoIniziale) {
int numeroContoCorrente;
boolean error;
ContoCorrente contoCorrente;
do {
error = false;
System.out.print("Inserire il proprio nome: ");
nome = sc.nextLine().trim();
System.out.print("Inserire il proprio cognome: ");
cognome = sc.nextLine().trim();
codiceFiscale = codiceFiscale();
dataDiNascita = dataDiNascita();
saldoIniziale = quantita("del saldo iniziale");
boolean exit = false;
int i = 0;
numeroContoCorrente = Math.abs(codiceFiscale.hashCode());
if (ContoCorrente.getNumeriContiCorrenti().contains(numeroContoCorrente)) {
System.out.println("Errore: esiste già un conto corrente per questo codice fiscale, riprovare.");
pausa();
error = true;
for (; i < conti.size() && exit; i++) {
exit = conti.get(i).getNumeroContoCorrente() == numeroContoCorrente;
}
contoCorrente = conti.get(i);
} else {
File percorsoConti = new File(PATH_CONTI);
if (!percorsoConti.exists()) {
@@ -183,74 +170,32 @@ public class MyBank {
conti.add(contoCorrente);
salvaContoCorrente(contoCorrente);
}
} while (error);
return contoCorrente;
}
static String codiceFiscale() {
String codiceFiscale;
boolean error;
public static boolean isCodiceFiscaleValid(String codiceFiscale) {
Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]");
Matcher matcher;
do {
error = false;
System.out.print("Inserire il proprio codice fiscale: ");
codiceFiscale = sc.nextLine().trim().toUpperCase();
matcher = pattern.matcher(codiceFiscale);
if (!matcher.find()) {
System.out.println(ERRORE_GENERICO);
pausa();
error = true;
}
} while (error);
return codiceFiscale;
return pattern.matcher(codiceFiscale).find();
}
static Date dataDiNascita() {
Date dataDiNascita = null;
boolean error;
public static Date dataDiNascita(String dataDiNascita) throws ParseException {
final String FORMATO_DATA = "dd/MM/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(FORMATO_DATA);
sdf.setLenient(false);
do {
error = false;
System.out.print("Inserire la propria data di nascita nel formato " + FORMATO_DATA + ": ");
try {
dataDiNascita = sdf.parse(sc.nextLine());
} catch (ParseException _) {
System.out.println("Errore: la data inserita non è valida.");
pausa();
error = true;
}
} while (error);
return dataDiNascita;
return sdf.parse(dataDiNascita);
}
static double quantita(String diCheCosa) {
double quantita = 0;
boolean error;
public static double valoreDouble(String numeroDouble) throws NumberFormatException {
double valoreDouble;
do {
error = false;
System.out.print("Inserire la quantità " + diCheCosa + ": ");
try {
quantita = sc.nextDouble();
sc.nextLine();
valoreDouble = Double.parseDouble(numeroDouble);
if (quantita <= 0) {
System.out.println("Errore: la quantità non può essere minore o uguale a zero.");
pausa();
error = true;
if (valoreDouble <= 0) {
throw new NumberFormatException();
}
} catch (InputMismatchException _) {
System.out.println(ERRORE_GENERICO);
pausa();
error = true;
}
} while (error);
return quantita;
return valoreDouble;
}
static void salvaContoCorrente(ContoCorrente conto) {