Carnet d’adresses

Contenu du snippet

L’application de classe  affiche dans un tableau le titre, le nom, le prénom et l’adresse d’un ensemble de contacts. L’ajout d’un nouveau contact s’effectue à partir du menu Fichier/Nouveau et d’un listener anonyme associé à ce menu. La saisie du texte correspondant s’effectue dans un panneau de classe.
Les données de chaque contact sont mémorisées par un modèle de données de classe. Ce modèle est utilisé par une instance pour obtenir les valeurs à afficher dans un tableau et permet de modifier les données affichées .

Source / Exemple :


import java.awt.*;
import javax.swing.*;

public class PanneauContact extends JPanel {
private final static String[] TITRES = {"Mr", "Mme", "Melle"};
private JComboBox SaisieTitre = new JComboBox(TITRES);
private JTextField SaisieNom = new JTextField(10);
private JTextField SaisiePrenom = new JTextField(10);
private JTextArea SaisieAdresse = new JTextArea(4,20);
public PanneauContact(){
JPanel panneauLabels = new JPanel(new GridLayout(4,1,5,5));	
panneauLabels.add(new JLabel("Titre"));
panneauLabels.add(new JLabel("Nom"));
panneauLabels.add(new JLabel("Prenom"));
panneauLabels.add(new JLabel("Adresse"));
JPanel panneauSaisie = new JPanel(new GridLayout(4,1,5,5));
panneauSaisie.add(this.SaisieTitre);
panneauSaisie.add(this.SaisieNom);
panneauSaisie.add(this.SaisiePrenom);
setLayout(new BorderLayout(5,5));
add(panneauLabels, BorderLayout.WEST);
add(panneauSaisie, BorderLayout.CENTER);
add(new JScrollPane(SaisieAdresse), BorderLayout.SOUTH);
}
public String getTitre(){
	return (String)this.SaisieTitre.getSelectedItem();
}
public String getNom(){
	return (String)this.SaisieNom.getText();
}
public String getPrenom(){
	return (String)this.SaisiePrenom.getText();
}
public String getAdresse(){
	return (String)this.SaisieAdresse.getText();
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.KeyStroke;
import javax.swing.table.DefaultTableModel;

public class CarnetAdress {
	/**

  • @param args
  • /
public static void main(String[] args){ final JFrame fenetre = new JFrame("Contacts"); String[] colonnes = {"Titre", "Nom", "Prenom", "Adresse"}; final DefaultTableModel modele = new DefaultTableModel(colonnes, 0); JTable tableau = new JTable(modele); fenetre.getContentPane().add(new JScrollPane(tableau)); int toucheRaccourcis = java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); JMenuItem menuNouveau = new JMenuItem("Nouveau",'N'); menuNouveau.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, toucheRaccourcis)); menuNouveau.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { PanneauContact panneau = new PanneauContact(); int reponse = JOptionPane.showConfirmDialog(fenetre, panneau, "Nouveau contact", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); if(reponse == JOptionPane.OK_OPTION) modele.addRow(new String[] {panneau.getTitre(), panneau.getNom(), panneau.getPrenom(), panneau.getAdresse()}); } }); JMenuItem menuQuitter = new JMenuItem("Quitter", 'Q'); menuQuitter.addActionListener(new ActionListener() { @SuppressWarnings("unused") public void ationPerformed(ActionEvent ev) { if (JOptionPane.showConfirmDialog(fenetre, "Voulez vous quitter ?", "Quitter", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) System.exit(0); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub } }); JMenuBar menuBarre = new JMenuBar(); fenetre.setJMenuBar(menuBarre); JMenu menuFichier = new JMenu("Fichier"); menuBarre.add(menuFichier); menuFichier.add(menuNouveau); menuFichier.add(menuQuitter); fenetre.setSize(300, 200); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fenetre.setVisible(true); } }

Conclusion :


En l’état, l’application du carnet d’adresses n’a qu’un intérêt limité car elle n’est pas capable de sauvegarder les données saisies dans un fichier. Pour enregistrer les contacts du tableau, vous pouvez soit utiliser une base de données (voir le
chapitre 11, « Connexion à la base de données avec JDBC »), soit utiliser des fichiers en recourant
aux classes
.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (ablayelana)