Mini projet java avec interface graphique et base de données
Mini projet java avec interface graphique et base de données
Ce Mini-projet montre l'exemple d’utilisation de la base de données en java, avec une interface graphique adaptative selon le contenu qu'on veut affichés
Vous pourrez télécharger le fichier au format zip il contient le code sources les classes, les modules, les images et la base de donnée
L’interface d'accueil de l'application contient trois onglets Affichage, Structure et requête;
Chaque onglet contenant des boutons de contrôle pour accéder aux interfaces:
‘Onglet Affichage’
- liste des élèves;
- liste des cours;
- liste des professeurs;
- liste des activités;
- les résultats
- les activités pratiquées..
‘Onglet Structure’
- table élèves
- table cours
- table professeurs
- tables activités
- table résultats
- table activités pratiqués
‘Onglet Requête’ contenant seize requêtes
On trouve aussi un menu principale qui nous permet de d'afficher ou créer un nouveau table élèves, cours, professeurs, activités, résultats et activités pratiqués
Cette application contient 8 classes:
- Activités
- Activités pratiques
- A-propos
- Cours
- Elève
- MaFenêtre
- Professeurs
- Résultats
Aperçu du codage de certaines classes de l’application :
Classe « Cours » :
package rahim.kherrata.ihm;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import rahim.kherrata.connexion.MaConnexion;
public class Cours extends JFrame {
private JLabel numcoursL =new JLabel();
private JLabel noncoursL =new JLabel();
private JLabel nbrcoursL =new JLabel();
private JLabel anneecoursL =new JLabel();
private Dimension de = new Dimension(150, 30);
private JTextField numcoursT = new JTextField();
private JTextField nomcoursT = new JTextField();
private JTextField nbrcoursT = new JTextField();
private JTextField anneecoursT = new JTextField();
private Font fenC = new Font("Garamond", 0, 16);
private Font fenC1 = new Font("Garamond", 1, 16);
private JPanel panC = new JPanel();
private JPanel panp = new JPanel();
private JButton ok = new JButton();
private JButton annuler = new JButton();
public Cours(){
setTitle("Fen-Ajout-Cours");
setSize(450, 250);
setVisible(true);
setLocationRelativeTo(null);
initLabel();
initChamps();
initButton();
initPanel();
}
private void initLabel(){
numcoursL.setText("Numero du cours:");
numcoursL.setPreferredSize(de);
numcoursL.setFont(fenC1);
noncoursL.setText("Nom du cours:");
noncoursL.setPreferredSize(de);
noncoursL.setFont(fenC1);
nbrcoursL.setText("Nombre d'heurs:");
nbrcoursL.setPreferredSize(de);
nbrcoursL.setFont(fenC1);
anneecoursL.setText("Année :");
anneecoursL.setPreferredSize(de);
anneecoursL.setFont(fenC1);
}
private void initChamps(){
numcoursT.setPreferredSize(de);
numcoursT.setFont(fenC);
nomcoursT.setPreferredSize(de);
nomcoursT.setFont(fenC);
nbrcoursT.setPreferredSize(de);
nbrcoursT.setFont(fenC);
anneecoursT.setPreferredSize(de);
anneecoursT.setFont(fenC);
}
private void initButton(){
ok.setText("OK");
ok.setPreferredSize(de);
ok.setBackground(Color.WHITE);
ok.setFont(fenC1);
ok.addActionListener( new ActionListener( ) {
public void actionPerformed( ActionEvent arg0) {
String num = numcoursT.getText() ;
String nom = nomcoursT.getText() ;
int nbr = Integer.valueOf(nbrcoursT.getText());
String anne = anneecoursT.getText();
String requete = "INSERT INTO COURS VALUES ('"+num+"','"+nom+"',"+nbr+",'"+anne+"')";
long start = System.currentTimeMillis();
Statement state = null;
try {
state = MaConnexion.getInstance().createStatement();
int res = state.executeUpdate(requete);
if(res!=0){
//state.execute(requete);
setVisible( false) ;
JOptionPane.showMessageDialog(null, "Eneregistrement ajouté avec succès", "info", JOptionPane.INFORMATION_MESSAGE);
}
//res.close();
state.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.getMessage(), "info", JOptionPane.INFORMATION_MESSAGE);
e.printStackTrace();
}
//On exécute la requête
}});
annuler.setText("Annuler");
annuler.setPreferredSize(de);
annuler.setFont(fenC1);
annuler.setBackground(Color.WHITE);
annuler.addActionListener( new ActionListener( ) {
public void actionPerformed( ActionEvent arg0) {
setVisible(false);
//On exécute la requête
}});
}
private void initPanel(){
panC.setBackground(Color.WHITE);
panC. setPreferredSize( new Dimension( 400, 200) ) ;
panC.setBorder( BorderFactory. createTitledBorder( "Information de cours : ") ) ;
panC.add(numcoursL);
panC.add(numcoursT);
panC.add(noncoursL);
panC.add(nomcoursT);
panC.add(nbrcoursL);
panC.add(nbrcoursT);
panC.add(anneecoursL);
panC.add(anneecoursT);
panC.add(ok);
panC.add(annuler);
setContentPane(panC);
}
}
...
Classe "Professeur":
package rahim.kherrata.ihm;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import rahim.kherrata.connexion.MaConnexion;
public class Professeurs extends JFrame{
private JLabel nomp,numep,datep,salairep;
private JTextField numeprof,nom,specialite,datentre, salaire;
private JButton b01 = new JButton();
private JButton b02 = new JButton();
JPanel pan = new JPanel( ) ;
JPanel panNom = new JPanel( ) ;
public Professeurs(){
setVisible(true);
setTitle( "Fen_Ajouter_Professeurs") ;
setAlwaysOnTop(true);
setSize( 450, 250) ;
setResizable(false);
setLocationRelativeTo( null) ;
initlabel();
initchamps();
initboutton();
initpanel();
add(pan);
}
private void initlabel(){
numep = new JLabel( "Numero de professeur : ") ;
numep.setPreferredSize(new Dimension( 150, 30));
nomp = new JLabel("Nom de professseurs : ") ;
nomp.setPreferredSize(new Dimension( 150, 30));
datep = new JLabel("Date d'entree :");
datep.setPreferredSize(new Dimension( 150, 30));
salairep = new JLabel("Salaire");
salairep.setPreferredSize(new Dimension( 150, 30));
}
private void initchamps(){
numeprof = new JTextField();
nom = new JTextField( ) ;
datentre = new JTextField( ) ;
specialite = new JTextField( ) ;
salaire = new JTextField( ) ;
numeprof. setPreferredSize( new Dimension( 150, 30) ) ;
nom. setPreferredSize( new Dimension( 150, 30) ) ;
datentre. setPreferredSize( new Dimension( 150, 30) ) ;
specialite. setPreferredSize( new Dimension( 150, 30) ) ;
salaire. setPreferredSize( new Dimension( 150, 30) ) ;
}
private void initboutton(){
b01 = new JButton();
b01.setText("Valider");
b01.setBackground(Color.WHITE);
b01.setPreferredSize(new Dimension( 150, 30));
b01.addActionListener( new ActionListener( ) {
public void actionPerformed( ActionEvent arg0) {
long start = System.currentTimeMillis();
Statement state;
String num = numeprof.getText();
String no = nom.getText();
String de = datentre.getText();
String sp = specialite.getText();
double salr = Double.valueOf(salaire.getText());
String requete = "insert into PROFESSEURS values('"+num+"','"+no+"','"+de+"','"+sp+"',"+salr+")";
try {
state = MaConnexion.getInstance().createStatement();
int res = state.executeUpdate(requete);
if(res!=0){
//state.execute(requete);
setVisible( false) ;
JOptionPane.showMessageDialog(null, "Eneregistrement ajouté avec succès", "info", JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, "Eneregistrement ajouté avec succès", "erreur", JOptionPane.INFORMATION_MESSAGE);
e.printStackTrace();
}
//On exécute la requête
}});
b02 = new JButton();
b02.setText("Annuler");
b02.setBackground(Color.WHITE);
b02.setPreferredSize(new Dimension( 150, 30));
b02.addActionListener( new ActionListener( ) {
public void actionPerformed( ActionEvent arg0) {
setVisible(false);
}});
}
private void initpanel(){
pan. setBackground( Color. white) ;
pan. setLayout( new BorderLayout( ) ) ;
panNom. setBackground( Color. white) ;
panNom. setPreferredSize( new Dimension( 400, 200) ) ;
panNom.setBorder( BorderFactory. createTitledBorder( "Information de professeur : ") ) ;
panNom.add(numep);
panNom.add(numeprof);
panNom. add( nomp) ;
panNom. add( nom) ;
panNom.add(datep);
panNom.add(datentre);
panNom.add(salairep);
panNom.add(salaire);
panNom.add(b01);
panNom.add(b02);
pan.add(panNom);
}
}