diff --git a/src/registrazionepalestra/RegistrazionePalestra.form b/src/registrazionepalestra/RegistrazionePalestra.form
index d9a6c20..1fddae8 100644
--- a/src/registrazionepalestra/RegistrazionePalestra.form
+++ b/src/registrazionepalestra/RegistrazionePalestra.form
@@ -82,7 +82,7 @@
-
+
@@ -128,7 +128,7 @@
-
+
@@ -210,6 +210,7 @@
+
@@ -222,7 +223,7 @@
-
+
diff --git a/src/registrazionepalestra/RegistrazionePalestra.java b/src/registrazionepalestra/RegistrazionePalestra.java
index 3900b4d..8b28436 100644
--- a/src/registrazionepalestra/RegistrazionePalestra.java
+++ b/src/registrazionepalestra/RegistrazionePalestra.java
@@ -8,7 +8,10 @@ import javax.swing.BorderFactory;
import javax.swing.JOptionPane;
import javax.swing.border.LineBorder;
import java.awt.Color;
-import java.util.Arrays;
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.regex.Pattern;
/**
*
@@ -33,7 +36,8 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
+ // //GEN-BEGIN:initComponents
private void initComponents() {
Sesso = new javax.swing.ButtonGroup();
@@ -51,7 +55,7 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
txtCodiceFiscale = new javax.swing.JTextField();
txtEmail = new javax.swing.JTextField();
txtPassword = new javax.swing.JPasswordField();
- jComboBox1 = new javax.swing.JComboBox<>();
+ cmbCitta = new javax.swing.JComboBox<>();
jScrollPane1 = new javax.swing.JScrollPane();
txtaNote = new javax.swing.JTextArea();
btnRegistra = new javax.swing.JButton();
@@ -103,6 +107,11 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
txtCodiceFiscaleFocusGained(evt);
}
});
+ txtCodiceFiscale.addKeyListener(new java.awt.event.KeyAdapter() {
+ public void keyReleased(java.awt.event.KeyEvent evt) {
+ txtCodiceFiscaleKeyReleased(evt);
+ }
+ });
txtEmail.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
@@ -116,7 +125,8 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
}
});
- jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Roma", "Londra", "Parigi", "Berlino", "Mosca", "Tjumen" }));
+ cmbCitta.setModel(new javax.swing.DefaultComboBoxModel<>(
+ new String[] { "Roma", "Londra", "Parigi", "Berlino", "Mosca", "Tjumen" }));
txtaNote.setColumns(20);
txtaNote.setLineWrap(true);
@@ -142,24 +152,22 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
javax.swing.GroupLayout pnlCorsiLayout = new javax.swing.GroupLayout(pnlCorsi);
pnlCorsi.setLayout(pnlCorsiLayout);
pnlCorsiLayout.setHorizontalGroup(
- pnlCorsiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(pnlCorsiLayout.createSequentialGroup()
- .addComponent(chkYoga)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(chkPilates)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(chkFitness)
- .addGap(0, 0, Short.MAX_VALUE))
- );
+ pnlCorsiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnlCorsiLayout.createSequentialGroup()
+ .addComponent(chkYoga)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(chkPilates)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(chkFitness)
+ .addGap(0, 0, Short.MAX_VALUE)));
pnlCorsiLayout.setVerticalGroup(
- pnlCorsiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlCorsiLayout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addGroup(pnlCorsiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(chkYoga)
- .addComponent(chkPilates)
- .addComponent(chkFitness)))
- );
+ pnlCorsiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlCorsiLayout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addGroup(pnlCorsiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(chkYoga)
+ .addComponent(chkPilates)
+ .addComponent(chkFitness))));
Sesso.add(radSessoF);
radSessoF.setText("F");
@@ -176,126 +184,167 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
javax.swing.GroupLayout pnlSessoLayout = new javax.swing.GroupLayout(pnlSesso);
pnlSesso.setLayout(pnlSessoLayout);
pnlSessoLayout.setHorizontalGroup(
- pnlSessoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSessoLayout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(radSessoM)
- .addGap(18, 18, 18)
- .addComponent(radSessoF)
- .addGap(18, 18, 18)
- .addComponent(radSessoNB)
- .addContainerGap())
- );
+ pnlSessoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSessoLayout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(radSessoM)
+ .addGap(18, 18, 18)
+ .addComponent(radSessoF)
+ .addGap(18, 18, 18)
+ .addComponent(radSessoNB)
+ .addContainerGap()));
pnlSessoLayout.setVerticalGroup(
- pnlSessoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(pnlSessoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(radSessoM)
- .addComponent(radSessoF)
- .addComponent(radSessoNB))
- );
+ pnlSessoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnlSessoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(radSessoM)
+ .addComponent(radSessoF)
+ .addComponent(radSessoNB)));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblNome)
- .addComponent(lblCognome)
- .addComponent(lblCodiceFiscale)
- .addComponent(lblEmail)
- .addComponent(lblPassword)
- .addComponent(lblSesso))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(35, 35, 35)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
- .addComponent(txtNome, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE)
- .addComponent(txtCognome, javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(txtEmail, javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(txtPassword, javax.swing.GroupLayout.Alignment.LEADING)))
- .addGroup(layout.createSequentialGroup()
- .addGap(51, 51, 51)
- .addComponent(pnlSesso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap(9, Short.MAX_VALUE)
- .addComponent(btnRegistra)
- .addGap(35, 35, 35))
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblCittà)
- .addComponent(lblCorsi)
- .addComponent(lblNote))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(btnCancella)
- .addGap(41, 41, 41)
- .addComponent(btnChiudi))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
- .addComponent(pnlCorsi, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 191, Short.MAX_VALUE)
- .addComponent(jComboBox1, javax.swing.GroupLayout.Alignment.LEADING, 0, 191, Short.MAX_VALUE))))
- .addContainerGap())
- );
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblNome)
+ .addComponent(lblCognome)
+ .addComponent(lblCodiceFiscale)
+ .addComponent(lblEmail)
+ .addComponent(lblPassword)
+ .addComponent(lblSesso))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(35, 35, 35)
+ .addGroup(layout
+ .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
+ false)
+ .addComponent(txtNome,
+ javax.swing.GroupLayout.Alignment.LEADING,
+ javax.swing.GroupLayout.DEFAULT_SIZE, 191,
+ Short.MAX_VALUE)
+ .addComponent(txtCognome,
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(txtCodiceFiscale,
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(txtEmail,
+ javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(txtPassword,
+ javax.swing.GroupLayout.Alignment.LEADING)))
+ .addGroup(layout.createSequentialGroup()
+ .addGap(51, 51, 51)
+ .addComponent(pnlSesso, javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(9, Short.MAX_VALUE)
+ .addComponent(btnRegistra)
+ .addGap(35, 35, 35))
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout
+ .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblCittà)
+ .addComponent(lblCorsi)
+ .addComponent(lblNote))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
+ javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(btnCancella)
+ .addGap(41, 41, 41)
+ .addComponent(btnChiudi))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 191,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
+ layout.createParallelGroup(
+ javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addComponent(pnlCorsi,
+ javax.swing.GroupLayout.Alignment.LEADING,
+ javax.swing.GroupLayout.PREFERRED_SIZE, 191,
+ Short.MAX_VALUE)
+ .addComponent(cmbCitta,
+ javax.swing.GroupLayout.Alignment.LEADING, 0,
+ 191, Short.MAX_VALUE))))
+ .addContainerGap()));
layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .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))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .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))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblCodiceFiscale))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblEmail))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblSesso, javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblPassword))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(pnlSesso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(lblCittà)
- .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(pnlCorsi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblCorsi))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblNote)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnRegistra)
- .addComponent(btnCancella)
- .addComponent(btnChiudi))
- .addContainerGap())
- );
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .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))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .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))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtCodiceFiscale, javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblCodiceFiscale))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblEmail))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblSesso, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout
+ .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtPassword,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblPassword))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(pnlSesso, javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lblCittà)
+ .addComponent(cmbCitta, javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(pnlCorsi, javax.swing.GroupLayout.PREFERRED_SIZE,
+ javax.swing.GroupLayout.DEFAULT_SIZE,
+ javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblCorsi))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblNote)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 121,
+ javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
+ javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(btnRegistra)
+ .addComponent(btnCancella)
+ .addComponent(btnChiudi))
+ .addContainerGap()));
pack();
}// //GEN-END:initComponents
+ private void txtCodiceFiscaleKeyReleased(java.awt.event.KeyEvent evt) {// GEN-FIRST:event_txtCodiceFiscaleKeyReleased
+ txtCodiceFiscale.setText(txtCodiceFiscale.getText().toUpperCase());
+ }// GEN-LAST:event_txtCodiceFiscaleKeyReleased
+
private void btnRegistraActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnRegistraActionPerformed
String nome = txtNome.getText().trim();
String cognome = txtCognome.getText().trim();
@@ -334,16 +383,149 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
pnlCorsi.setBorder(new LineBorder(Color.red));
}
JOptionPane.showMessageDialog(null, "Inserire tutti i dati richiesti.");
-
+
return;
}
+ if (!isCodiceFiscaleValid(codiceFiscale)) {
+ JOptionPane.showMessageDialog(null, "Il codice fiscale non è valido.");
+ txtCodiceFiscale.setBorder(new LineBorder(Color.red));
+ return;
+ }
+
+ if (!isEmailValid(email)) {
+ JOptionPane.showMessageDialog(null, "L'indirizzo email non è valido.");
+ txtEmail.setBorder(new LineBorder(Color.red));
+ return;
+ }
+
+ salvaSuFile();
+ successMeassage(nome, cognome, getSelectedSesso(), getSelectedCorsi());
}// GEN-LAST:event_btnRegistraActionPerformed
private boolean isCorsiEmpty() {
return !(chkYoga.isSelected() || chkPilates.isSelected() || chkFitness.isSelected());
}
+ private 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();
+ }
+
+ private boolean isEmailValid(String email) {
+ Pattern pattern = Pattern.compile("[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}");
+ return pattern.matcher(email).find();
+ }
+
+ private int getSelectedSesso() {
+ int sessoSelected = -1;
+
+ if (radSessoM.isSelected()) {
+ sessoSelected = 0;
+ }
+ if (radSessoF.isSelected()) {
+ sessoSelected = 1;
+ }
+ if (radSessoNB.isSelected()) {
+ sessoSelected = 2;
+ }
+
+ return sessoSelected;
+ }
+
+ private String getSelectedCorsi() {
+ StringBuilder sb = new StringBuilder();
+
+ if (chkYoga.isSelected()) {
+ sb.append("\n");
+ sb.append(chkYoga.getText());
+ }
+ if (chkPilates.isSelected()) {
+ sb.append("\n");
+ sb.append(chkPilates.getText());
+ }
+ if (chkFitness.isSelected()) {
+ sb.append("\n");
+ sb.append(chkFitness.getText());
+ }
+
+ return sb.toString();
+ }
+
+ private void salvaSuFile() {
+ String nome = txtNome.getText().trim();
+ String cognome = txtCognome.getText().trim();
+ String codiceFiscale = txtCodiceFiscale.getText().trim().toUpperCase();
+ String email = txtEmail.getText().trim();
+ String password = new String(txtPassword.getPassword());
+ String sesso;
+ String note = txtaNote.getText();
+ StringBuilder sb = new StringBuilder();
+
+ switch (getSelectedSesso()) {
+ case 0:
+ sesso = "M";
+ break;
+ case 1:
+ sesso = "F";
+ break;
+ case 2:
+ sesso = "NB";
+ break;
+ default:
+ sesso = "";
+ break;
+ }
+
+ sb.append("Nome: ");
+ sb.append(nome);
+ sb.append("\nCognome: ");
+ sb.append(cognome);
+ sb.append("\nCodice fiscale: ");
+ sb.append(codiceFiscale);
+ sb.append("\nEmail: ");
+ sb.append(email);
+ sb.append("\nPassword: ");
+ sb.append(password);
+ sb.append("\nSesso: ");
+ sb.append(sesso);
+ sb.append("\nCittà: ");
+ sb.append(cmbCitta.getSelectedItem());
+ sb.append("\nCorsi: ");
+ sb.append(getSelectedCorsi().replace("\n", ", ").replaceFirst(", ", ""));
+ sb.append("\nNote: ");
+ sb.append(note);
+ sb.append("\n--FINE REGISTRAZIONE SOPRA--");
+
+ try (BufferedWriter bw = new BufferedWriter(new FileWriter("./src/registrazionepalestra/registrazioni.txt", true))) {
+ bw.write(sb.toString());
+ } catch (IOException _) {
+ JOptionPane.showMessageDialog(null, "Errore nel salvataggio della registrazione.");
+ }
+ }
+
+ private void successMeassage(String nome, String cognome, int sesso, String corsi) {
+ String letteraSignor;
+
+ switch (sesso) {
+ case 0:
+ letteraSignor = "e";
+ break;
+ case 1:
+ letteraSignor = "a";
+ break;
+ case 2:
+ letteraSignor = "ə";
+ break;
+ default:
+ letteraSignor = "";
+ break;
+ }
+
+ JOptionPane.showMessageDialog(null, "Complimenti signor" + letteraSignor + " " + nome + " " + cognome
+ + ", la registrazione ai seguenti corsi è avvenuta con successo:" + corsi);
+ }
+
private void txtNomeFocusGained(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_txtNomeFocusGained
txtNome.setBorder(null);
}// GEN-LAST:event_txtNomeFocusGained
@@ -425,7 +607,7 @@ public class RegistrazionePalestra extends javax.swing.JFrame {
private javax.swing.JCheckBox chkFitness;
private javax.swing.JCheckBox chkPilates;
private javax.swing.JCheckBox chkYoga;
- private javax.swing.JComboBox jComboBox1;
+ private javax.swing.JComboBox cmbCitta;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblCittà;
private javax.swing.JLabel lblCodiceFiscale;