maj
This commit is contained in:
@@ -1,75 +1,56 @@
|
|||||||
|
# === Configuration ===
|
||||||
==== Paramètres du projet ====
|
SRC_DIR := src/fr/iutfbleau/papillon
|
||||||
APP_NAME := papillon
|
BUILD_DIR := build
|
||||||
MAIN_CLASS := fr.iutfbleau.papillon.Start # <-- change si ton main est ailleurs
|
DOC_DIR := doc
|
||||||
|
|
||||||
SRC_DIR := src
|
|
||||||
BUILD_DIR:= build
|
|
||||||
DIST_DIR := dist
|
|
||||||
RES_DIR := res
|
|
||||||
LIB_DIR := lib
|
LIB_DIR := lib
|
||||||
|
LIB := $(LIB_DIR)/mariadb
|
||||||
|
MAIN_CLASS := fr.iutfbleau.papillon.Start
|
||||||
|
|
||||||
Driver MariaDB
|
# === Commandes principales ===
|
||||||
DRIVER_JAR := $(LIB_DIR)/mariadb
|
|
||||||
|
|
||||||
Séparateur de classpath selon OS
|
# Compilation du projet
|
||||||
ifeq ($(OS),Windows_NT)
|
compile:
|
||||||
SEP := ;
|
@echo === Compilation du projet ===
|
||||||
else
|
javac -encoding UTF-8 -cp "$(LIB)" -d $(BUILD_DIR) $(SRC_DIR)/*.java
|
||||||
SEP := :
|
@echo Compilation terminee !
|
||||||
endif
|
|
||||||
|
|
||||||
Liste des sources et classes correspondantes
|
# Exécution du programme
|
||||||
SOURCES := $(shell find $(SRC_DIR) -name ".java")
|
|
||||||
CLASSES := $(SOURCES:$(SRC_DIR)/%.java=$(BUILD_DIR)/%.class)
|
|
||||||
|
|
||||||
==== Règles ====
|
|
||||||
.PHONY: all compile jar run run-jar clean rebuild
|
|
||||||
|
|
||||||
all: compile
|
|
||||||
|
|
||||||
$(BUILD_DIR):
|
|
||||||
@mkdir -p $(BUILD_DIR)
|
|
||||||
|
|
||||||
$(DIST_DIR):
|
|
||||||
@mkdir -p $(DIST_DIR)
|
|
||||||
|
|
||||||
Compilation de chaque .java vers build/ en respectant les packages
|
|
||||||
$(BUILD_DIR)/%.class: $(SRC_DIR)/%.java | $(BUILD_DIR)
|
|
||||||
@mkdir -p $(dir $@)
|
|
||||||
javac -classpath "$(DRIVER_JAR)" -d $(BUILD_DIR) $<
|
|
||||||
|
|
||||||
Compile tout + copie des ressources si dossier res/ existe
|
|
||||||
compile: $(CLASSES)
|
|
||||||
@if [ -d "$(RES_DIR)" ]; then \
|
|
||||||
echo "Copie des ressources..."; \
|
|
||||||
cp -r $(RES_DIR)/ $(BUILD_DIR)/; \
|
|
||||||
fi
|
|
||||||
@echo "==> Compilation OK"
|
|
||||||
|
|
||||||
MANIFEST avec Main-Class et Class-Path (référence le driver)
|
|
||||||
MANIFEST.MF:
|
|
||||||
@echo "Manifest-Version: 1.0" > MANIFEST.MF
|
|
||||||
@echo "Main-Class: $(MAIN_CLASS)" >> MANIFEST.MF
|
|
||||||
@echo "Class-Path: ../$(DRIVER_JAR)" >> MANIFEST.MF
|
|
||||||
|
|
||||||
Construction du JAR
|
|
||||||
jar: compile MANIFEST.MF | $(DIST_DIR)
|
|
||||||
jar cfm $(DIST_DIR)/$(APP_NAME).jar MANIFEST.MF -C $(BUILD_DIR) .
|
|
||||||
@echo "==> JAR créé: $(DIST_DIR)/$(APP_NAME).jar"
|
|
||||||
|
|
||||||
Exécution directe depuis build/ + driver sur le classpath
|
|
||||||
run: compile
|
run: compile
|
||||||
java -classpath "$(BUILD_DIR)$(SEP)$(DRIVER_JAR)" $(MAIN_CLASS)
|
@echo === Execution du programme ===
|
||||||
|
java -cp "$(BUILD_DIR);$(LIB)" $(MAIN_CLASS)
|
||||||
Exécution du .jar (le MANIFEST référence le driver dans lib/)
|
|
||||||
run-jar: jar
|
|
||||||
java -jar "$(DIST_DIR)/$(APP_NAME).jar"
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf $(BUILD_DIR) $(DIST_DIR) MANIFEST.MF
|
|
||||||
|
|
||||||
rebuild: clean all
|
|
||||||
|
|
||||||
|
# Génération de la documentation Javadoc
|
||||||
doc:
|
doc:
|
||||||
javadoc -d doc/ src/*.java
|
@echo === Generation de la documentation Javadoc ===
|
||||||
|
javadoc -d $(DOC_DIR) -encoding UTF-8 -cp "$(LIB)" $(SRC_DIR)/*.java
|
||||||
|
@echo Documentation generee dans le dossier $(DOC_DIR)
|
||||||
|
|
||||||
|
# === Création du JAR ===
|
||||||
|
jar: compile
|
||||||
|
@echo === Creation du fichier JAR ===
|
||||||
|
echo Main-Class: $(MAIN_CLASS) > manifest.txt
|
||||||
|
jar cfm $(JAR_FILE) manifest.txt -C $(BUILD_DIR) .
|
||||||
|
@echo Archive JAR creee : $(JAR_FILE)
|
||||||
|
@del manifest.txt 2>nul || true
|
||||||
|
|
||||||
|
# === Exécution du JAR ===
|
||||||
|
run-jar: jar
|
||||||
|
@echo === Execution du JAR ===
|
||||||
|
java -cp "$(JAR_FILE);$(LIB)" -jar $(JAR_FILE)
|
||||||
|
|
||||||
|
# Nettoyage du dossier build
|
||||||
|
clean:
|
||||||
|
@echo === Nettoyage des fichiers compiles ===
|
||||||
|
@rmdir /s /q $(BUILD_DIR) 2>nul || true
|
||||||
|
@mkdir $(BUILD_DIR)
|
||||||
|
@echo Build nettoye.
|
||||||
|
|
||||||
|
# Nettoyage complet (build + doc)
|
||||||
|
reset: clean
|
||||||
|
@echo === Suppression de la documentation ===
|
||||||
|
@rmdir /s /q $(DOC_DIR) 2>nul || true
|
||||||
|
@mkdir $(DOC_DIR)
|
||||||
|
@echo Tout a ete nettoye.
|
||||||
|
|
||||||
|
# Compilation + exécution directe
|
||||||
|
all: compile run
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
package fr.iutfbleau.papillon;
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package fr.iutfbleau.papillon;
|
package fr.iutfbleau.papillon;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package fr.iutfbleau.papillon;
|
package fr.iutfbleau.papillon;
|
||||||
|
|
||||||
import javax.swing.event.*;
|
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
public class FichierDemarrage {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
try {
|
|
||||||
String cle = UserKey.lireOuCreerCle();
|
|
||||||
int userId = UtilisateurBD.getOrCreateUserId(cle, "local_user");
|
|
||||||
|
|
||||||
// Démo rapide
|
|
||||||
Rappel r = new Rappel("Faire le TD", "chapitre JDBC", "Travail", 2);
|
|
||||||
int idNew = RappelBD.ajouterPourUtilisateur(userId, r);
|
|
||||||
|
|
||||||
for (Rappel x : RappelBD.listerParUtilisateur(userId)) {
|
|
||||||
System.out.println(" - " + x.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
r.setTitre("Faire le TD (MAJ)");
|
|
||||||
RappelBD.modifierPourUtilisateur(userId, r.getId(), r);
|
|
||||||
|
|
||||||
for (Rappel x : RappelBD.listerParUtilisateur(userId)) {
|
|
||||||
System.out.println(" * " + x.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
RappelBD.supprimerPourUtilisateur(userId, r.getId());
|
|
||||||
|
|
||||||
for (Rappel x : RappelBD.listerParUtilisateur(userId)) {
|
|
||||||
System.out.println(" # " + x.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,6 @@ package fr.iutfbleau.papillon;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,41 +1,84 @@
|
|||||||
|
package fr.iutfbleau.papillon;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* La classe <code>PanelRappel</code> représente l’affichage graphique
|
||||||
|
* d’un rappel dans l’application <b>Papillon</b>.
|
||||||
|
* <p>
|
||||||
|
* Chaque panneau contient le titre, un aperçu du contenu, ainsi qu’une
|
||||||
|
* couleur correspondant au thème du rappel.
|
||||||
|
* L’utilisateur peut interagir avec ce panneau (sélection, clic droit, etc.).
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @version 1.0
|
||||||
|
* @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
|
||||||
|
*/
|
||||||
public class PanelRappel extends JPanel implements ActionListener, MouseListener {
|
public class PanelRappel extends JPanel implements ActionListener, MouseListener {
|
||||||
|
|
||||||
|
/** Indique si le rappel est actuellement sélectionné. */
|
||||||
private boolean estSelectionne = false;
|
private boolean estSelectionne = false;
|
||||||
|
|
||||||
|
/** Label affichant le titre du rappel. */
|
||||||
private JLabel lbtitre;
|
private JLabel lbtitre;
|
||||||
|
|
||||||
|
/** Label affichant un aperçu du contenu du rappel. */
|
||||||
private JLabel lbcontenu;
|
private JLabel lbcontenu;
|
||||||
|
|
||||||
|
/** Référence vers le rappel associé à ce panneau. */
|
||||||
private Rappel r;
|
private Rappel r;
|
||||||
|
|
||||||
|
/** Menu contextuel (clic droit). */
|
||||||
private JPopupMenu menu;
|
private JPopupMenu menu;
|
||||||
|
|
||||||
|
/** Élément du menu permettant d’ouvrir le rappel. */
|
||||||
private JMenuItem itemOuvrir;
|
private JMenuItem itemOuvrir;
|
||||||
|
|
||||||
|
/** Référence à la fenêtre principale. */
|
||||||
private Main main;
|
private Main main;
|
||||||
|
|
||||||
|
/** Liste des couleurs disponibles pour les thèmes. */
|
||||||
private static CouleurList couleur = new CouleurList();
|
private static CouleurList couleur = new CouleurList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructeur du panneau associé à un rappel et à la fenêtre principale.
|
||||||
|
*
|
||||||
|
* @param r le rappel à afficher
|
||||||
|
* @param main la fenêtre principale
|
||||||
|
*/
|
||||||
public PanelRappel(Rappel r, Main main) {
|
public PanelRappel(Rappel r, Main main) {
|
||||||
super(new BorderLayout(2, 0));
|
super(new BorderLayout(2, 0));
|
||||||
this.main = main;
|
this.main = main;
|
||||||
createPanel(r);
|
createPanel(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructeur du panneau associé à un rappel sans référence à la fenêtre principale.
|
||||||
|
*
|
||||||
|
* @param r le rappel à afficher
|
||||||
|
*/
|
||||||
public PanelRappel(Rappel r) {
|
public PanelRappel(Rappel r) {
|
||||||
super(new BorderLayout(2, 0));
|
super(new BorderLayout(2, 0));
|
||||||
createPanel(r);
|
createPanel(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialise et configure le panneau pour afficher les informations du rappel.
|
||||||
|
*
|
||||||
|
* @param r le rappel à afficher
|
||||||
|
*/
|
||||||
public void createPanel(Rappel r){
|
public void createPanel(Rappel r){
|
||||||
this.r = r;
|
this.r = r;
|
||||||
|
|
||||||
// --- Titre et contenu raccourci ---
|
// Titre et contenu raccourci
|
||||||
lbtitre = new JLabel("[" + r.getRang() + "] " + r.getTitre());
|
lbtitre = new JLabel("[" + r.getRang() + "] " + r.getTitre());
|
||||||
lbcontenu = new JLabel(
|
lbcontenu = new JLabel(
|
||||||
"<html>" + (r.getContenu().length() > 40 ? r.getContenu().substring(0, 40) + "..." : r.getContenu()) + "</html>"
|
"<html>" + (r.getContenu().length() > 40 ? r.getContenu().substring(0, 40) + "..." : r.getContenu()) + "</html>"
|
||||||
);
|
);
|
||||||
|
|
||||||
// --- Apparence de base ---
|
// - Apparence de base
|
||||||
this.setPreferredSize(new Dimension(70, 50));
|
this.setPreferredSize(new Dimension(70, 50));
|
||||||
this.setBackground(couleur.couleurDe(r.getTheme()));
|
this.setBackground(couleur.couleurDe(r.getTheme()));
|
||||||
this.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 2));
|
this.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 2));
|
||||||
@@ -44,44 +87,69 @@ public class PanelRappel extends JPanel implements ActionListener, MouseListener
|
|||||||
GridBagConstraints c = new GridBagConstraints();
|
GridBagConstraints c = new GridBagConstraints();
|
||||||
c.anchor = GridBagConstraints.NORTHWEST;
|
c.anchor = GridBagConstraints.NORTHWEST;
|
||||||
|
|
||||||
// --- Position du titre ---
|
// - Position du titre
|
||||||
c.gridx = 0;
|
c.gridx = 0;
|
||||||
c.gridy = 0;
|
c.gridy = 0;
|
||||||
c.weightx = 1;
|
c.weightx = 1;
|
||||||
c.fill = GridBagConstraints.NONE;
|
c.fill = GridBagConstraints.NONE;
|
||||||
add(lbtitre, c);
|
add(lbtitre, c);
|
||||||
|
|
||||||
// --- Position du contenu ---
|
// -Position du contenu
|
||||||
c.gridx = 0;
|
c.gridx = 0;
|
||||||
c.gridy = 1;
|
c.gridy = 1;
|
||||||
c.weightx = 1;
|
c.weightx = 1;
|
||||||
c.fill = GridBagConstraints.NONE;
|
c.fill = GridBagConstraints.NONE;
|
||||||
add(lbcontenu, c);
|
add(lbcontenu, c);
|
||||||
|
|
||||||
// --- Menu contextuel (clic droit) ---
|
// - Menu contextuel (clic droit)
|
||||||
menu = new JPopupMenu();
|
menu = new JPopupMenu();
|
||||||
itemOuvrir = new JMenuItem("Ouvrir");
|
itemOuvrir = new JMenuItem("Ouvrir");
|
||||||
itemOuvrir.addActionListener(this);
|
itemOuvrir.addActionListener(this);
|
||||||
menu.add(itemOuvrir);
|
menu.add(itemOuvrir);
|
||||||
|
|
||||||
// --- Activation des clics ---
|
// - Activation des clics
|
||||||
addMouseListener(this);
|
addMouseListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// === GETTERS ===
|
// GETTERS
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indique si le panneau est actuellement sélectionné.
|
||||||
|
*
|
||||||
|
* @return true si le panneau est sélectionné, false sinon
|
||||||
|
*/
|
||||||
public boolean getSelection() {
|
public boolean getSelection() {
|
||||||
return estSelectionne;
|
return estSelectionne;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renvoie l’identifiant du rappel affiché.
|
||||||
|
*
|
||||||
|
* @return l’identifiant unique du rappel
|
||||||
|
*/
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return r.getId();
|
return r.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renvoie le rappel associé à ce panneau.
|
||||||
|
*
|
||||||
|
* @return le rappel affiché dans ce panneau
|
||||||
|
*/
|
||||||
public Rappel getRappel() {
|
public Rappel getRappel() {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
// === ACTIONS ===
|
|
||||||
|
/**
|
||||||
|
* Gère les actions déclenchées par les éléments du menu contextuel.
|
||||||
|
* <p>
|
||||||
|
* Si l’utilisateur clique sur "Ouvrir", la fenêtre détaillée du rappel est affichée.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param e l’événement d’action déclenché
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
Object src = e.getSource();
|
Object src = e.getSource();
|
||||||
@@ -92,7 +160,15 @@ public class PanelRappel extends JPanel implements ActionListener, MouseListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// === GESTION DES CLICS SOURIS ===
|
/**
|
||||||
|
* Gère les clics de souris sur le panneau.
|
||||||
|
* <p>
|
||||||
|
* Un clic gauche sélectionne/désélectionne le panneau,
|
||||||
|
* tandis qu’un clic droit affiche le menu contextuel.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param e l’événement de souris détecté
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent e) {
|
public void mousePressed(MouseEvent e) {
|
||||||
if (e.isPopupTrigger()) {
|
if (e.isPopupTrigger()) {
|
||||||
@@ -104,6 +180,15 @@ public class PanelRappel extends JPanel implements ActionListener, MouseListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gère la libération du clic de souris.
|
||||||
|
* <p>
|
||||||
|
* Si le clic est un clic droit, le menu contextuel s’affiche.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param e l’événement de souris
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mouseReleased(MouseEvent e) {
|
public void mouseReleased(MouseEvent e) {
|
||||||
if (e.isPopupTrigger()) {
|
if (e.isPopupTrigger()) {
|
||||||
@@ -111,6 +196,15 @@ public class PanelRappel extends JPanel implements ActionListener, MouseListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gère les clics simples ou doubles sur le panneau.
|
||||||
|
* <p>
|
||||||
|
* Un double clic gauche ouvre la fenêtre de rappel complète.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param e l’événement de souris
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
// === Double clic pour ouvrir la vue complète ===
|
// === Double clic pour ouvrir la vue complète ===
|
||||||
@@ -120,17 +214,35 @@ public class PanelRappel extends JPanel implements ActionListener, MouseListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change l’apparence du panneau lorsque la souris entre dans sa zone.
|
||||||
|
*
|
||||||
|
* @param e l’événement de souris
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mouseEntered(MouseEvent e) {
|
public void mouseEntered(MouseEvent e) {
|
||||||
setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restaure la bordure du panneau lorsque la souris quitte sa zone.
|
||||||
|
*
|
||||||
|
* @param e l’événement de souris
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mouseExited(MouseEvent e) {
|
public void mouseExited(MouseEvent e) {
|
||||||
setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
|
setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Met à jour l’apparence du panneau en fonction de son état de sélection.
|
||||||
|
* <p>
|
||||||
|
* Si le panneau est sélectionné, son fond devient gris clair
|
||||||
|
* et une bordure noire est appliquée.
|
||||||
|
* Sinon, la couleur de fond correspond au thème du rappel.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
private void majApparence() {
|
private void majApparence() {
|
||||||
if (estSelectionne) {
|
if (estSelectionne) {
|
||||||
setBackground(Color.LIGHT_GRAY);
|
setBackground(Color.LIGHT_GRAY);
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
package fr.iutfbleau.papillon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* La classe <code>Rappel</code> représente un rappel utilisateur,
|
* La classe <code>Rappel</code> représente un rappel utilisateur,
|
||||||
* avec un titre, un contenu, un thème et un rang de priorité.
|
* avec un titre, un contenu, un thème et un rang de priorité.
|
||||||
*
|
*
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
|
* @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
|
||||||
*/
|
*/
|
||||||
public class Rappel {
|
public class Rappel {
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
package fr.iutfbleau.papillon;
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -7,7 +9,7 @@ import java.sql.*;
|
|||||||
* et de lire un utilisateur complet via sa clé.</p>
|
* et de lire un utilisateur complet via sa clé.</p>
|
||||||
*
|
*
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author Junior
|
* @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
|
||||||
*/
|
*/
|
||||||
public class UtilisateurBD {
|
public class UtilisateurBD {
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 840 KiB |
Reference in New Issue
Block a user