-
<<
Gestione con interfaccia grafica della lista di veicoli, con inserimento, cancellazione, visualizzazione (con eventuale modifica dei dati).
-
Definizione dell'oggetto GestioneVeicoli, il main del progetto.
Ricordare che il metodo show è classificato obsoleto e sarebbe preferibile usare setVisible.
package gestioneveicoli;
public class GestioneVeicoli {
public static void main(String[] args) {
mainForm f = new mainForm();
f.show();
}
}
-
Definizione dell'oggetto mainForm, finestra principale che contiene la lista che visualizza l'elenco dei mezzi catalogati.
I metodi initComponents e main sono stati omessi.
package gestioneveicoli;
public class mainForm extends javax.swing.JFrame {
private Veicoli lista = new Veicoli();
public mainForm() {
initComponents();
// all'avvio presento almeno due veicoli
Veicolo v1 = new Veicolo("AB999XX");
lista.add(v1);
lstVeicoli.add(v1.targa);
Veicolo v2 = new Veicolo("CC000AA");
lista.add(v2);
lstVeicoli.add(v2.targa);
}
private void btnEsciActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void btnInserisciActionPerformed(java.awt.event.ActionEvent evt) {
VeicoloDlg dlg = new VeicoloDlg(this, true);
dlg.show();
// mi faccio dare il nuovo veicolo ...
Veicolo v = dlg.getVeicolo();
if (v != null) {
// ... e lo inserisco nelle liste
lista.add(v);
lstVeicoli.add(v.targa);
}
}
private void btnCancellaActionPerformed(java.awt.event.ActionEvent evt) {
int ind = lstVeicoli.getSelectedIndex();
if (ind > -1) {
// rimuovo il veicolo selezionato nella lista
lstVeicoli.remove(ind);
lista.remove(ind);
}
}
private void btnVisualizzaActionPerformed(java.awt.event.ActionEvent evt) {
int ind = lstVeicoli.getSelectedIndex();
if (ind > -1) {
Veicolo v = lista.get(ind);
VeicoloDlg dlg = new VeicoloDlg(this, true, v);
dlg.show();
// mi faccio dare il veicolo,
// potrebbe essere stato modificato nei suoi dati, ...
v = dlg.getVeicolo();
if (v != null) {
// ... e lo sostituisco nella lista dei dati
lista.clone(ind, v);
// rimpiazzo nelle lista a video
lstVeicoli.replaceItem(v.targa, ind);
}
}
}
// Variables declaration - do not modify
private javax.swing.JButton btnCancella;
private javax.swing.JButton btnEsci;
private javax.swing.JButton btnInserisci;
private javax.swing.JButton btnVisualizza;
private javax.swing.JLabel jLabel1;
private java.awt.List lstVeicoli;
// End of variables declaration
}
-
Definizione dell'oggetto VeicoloDlg, oggetto dialog che serve da finestra sencodaria per la visualizzazione e per l'inserimento dei dati di un singolo veicolo.
I metodi initComponents e main sono stati omessi.
package gestioneveicoli;
import javax.swing.JOptionPane;
/**
*
* @author escapin
*/
public class VeicoloDlg extends javax.swing.JDialog {
private Veicolo v;
/**
* Creates new form VeicoloDlg
*/
public VeicoloDlg(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
// Costruttore che mi permette di passare i dati del veicolo che deve
// essere visualizzato.
public VeicoloDlg(java.awt.Frame parent, boolean modal, Veicolo v) {
super(parent, modal);
initComponents();
this.v = v;
txtTarga.setText(v.targa);
txtTelaio.setText(v.telaio);
txtAnnoImm.setText(String.valueOf(v.annoimmatricolazione));
txtProvincia.setText(v.provincia);
}
public void setVeicolo(Veicolo v) {
this.v = v;
}
public Veicolo getVeicolo() {
return v;
}
private void btnEsciActionPerformed(java.awt.event.ActionEvent evt) {
this.setVisible(false);
}
private void btnSalvaActionPerformed(java.awt.event.ActionEvent evt) {
boolean b = false;
String t = txtTarga.getText();
v = new Veicolo(t);
t = txtTelaio.getText();
v.telaio = t;
t = txtProvincia.getText();
v.provincia = t;
t = txtAnnoImm.getText();
if (t.length() > 0) {
try {
v.annoimmatricolazione = Integer.parseInt(t);
}
catch(Exception ex) {
b = true;
JOptionPane.showMessageDialog(null, "Anno non corretto. " + ex.getMessage());
}
}
this.setVisible(b);
}
// Variables declaration - do not modify
private javax.swing.JButton btnEsci;
private javax.swing.JButton btnSalva;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JTextField txtAnnoImm;
private javax.swing.JTextField txtProvincia;
private javax.swing.JTextField txtTarga;
private javax.swing.JTextField txtTelaio;
// End of variables declaration
}
-