SA MARCHE

This commit is contained in:
LucasV-IUT
2021-11-28 20:46:50 +01:00
parent 555c1006cd
commit 0ce4f8ed85
5 changed files with 187 additions and 164 deletions
+56 -15
View File
@@ -8,44 +8,85 @@ package lecteur_pdf.affichage;
import lecteur_pdf.document.PDF;
import lecteur_pdf.menu.Menu;
import javax.swing.*;
import java.io.File;
/**
* classe correspondant à l'objet Fenetre
* classe correspondant à lobjet Fenêtre
*
* @author Léo FRANCH
* @author Tristan NOGARET
* @author Lucàs VABRE
* @author Noé VILLENEUVE
* @version 1.0
* @version 1.0
*/
public class Fenetre extends JFrame {
//private JFrame frame;
private String titre ;
private Menu menu = new Menu(this);
private PDF pdf ;
/**
* TODO
*/
private String titre;
/**
* TODO
*/
private Menu menu;
public Fenetre(){
//création du frame
/**
* TODO
*/
private PDF fichierPDF;
/**
* TODO
*/
public Fenetre() {
// Création du menu
Menu menu = new Menu(this);
menu = new Menu(this);
// Ajout de la barre de menu au frame
this.setJMenuBar(menu.getMenuBar());
this.setSize( 300 ,300);
this.setLayout(null);
this.setJMenuBar(menu);
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
/**
* TODO
*
* @param fichier
*/
public void chargerPdf(File fichier) {
fichierPDF = new PDF(fichier);
/* Crée l’élément scrollable */
JScrollPane scrollPane = new JScrollPane(fichierPDF);
scrollPane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.getVerticalScrollBar().setUnitIncrement(16);
/* Supprime le précédent PDF */
this.getContentPane().removeAll();
/* Affiche le nouveau PDF */
this.getContentPane().add(scrollPane);
this.validate();
}
/**
* TODO comment main
*
* @param args non utilisé
*/
public static void main(String[] args) {
new Fenetre();
}
}
+6 -7
View File
@@ -43,15 +43,14 @@ public class PDF extends JPanel {
* @param fichier Le fichier PDF que lon veut ouvrir
* @throws IllegalArgumentException si le fichier nexiste pas
*/
public PDF(File fichier) throws IOException {
if (!fichier.exists()) {
public PDF(File fichier) {
try {
this.document = PDDocument.load(fichier);
this.pages = new Page[document.getNumberOfPages()];
this.loadPages();
} catch (IOException e) {
throw new IllegalArgumentException();
}
this.document = PDDocument.load(fichier);
this.pages = new Page[document.getNumberOfPages()];
this.loadPages();
}
/**
+45 -52
View File
@@ -7,12 +7,10 @@
package lecteur_pdf.menu;
import lecteur_pdf.affichage.Fenetre;
import lecteur_pdf.document.PDF;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
/**
@@ -22,31 +20,39 @@ import java.util.ArrayList;
* @author Tristan NOGARET
* @author Lucàs VABRE
* @author Noé VILLENEUVE
* @version 1.0
* @version 1.0
*/
public class Menu {
public static File fichier ;
/** Array list contenant les JMenu */
private ArrayList<JMenu> menuList = new ArrayList<JMenu>();
/** Array list contenant les JMenuItem */
private ArrayList<JMenuItem> itemList = new ArrayList<JMenuItem>();
/** Création de la barre de menu */
JMenuBar menubar = new JMenuBar();
JFrame frame;
public class Menu extends JMenuBar {
/**
* Appelle la fonction createMenuFichier
* La Fenêtre mère de la barre des menus
*/
public Menu(JFrame frame) {
this.frame = frame;
private final Fenetre fenetre;
/**
* Liste contenant les différents menus
*/
private final ArrayList<JMenu> menuList = new ArrayList<>();
/**
* Liste contenant les différents sous menus
*/
private final ArrayList<JMenuItem> itemList = new ArrayList<>();
/**
* Constructeur du menu
*
* @param fenetre La Fenêtre mère de la barre des menus
*/
public Menu(Fenetre fenetre) {
this.fenetre = fenetre;
createMenuFichier();
// createMenuAfficher();
}
/**
* Fonction pour créer le Menu fichier et ses items
* Créé le menu Fichier et ses sous-menus
*/
private void createMenuFichier() {
@@ -61,66 +67,53 @@ public class Menu {
Ouvrir.addActionListener(this::actionPerformed);
Fermer.addActionListener(this::actionPerformed);
// TODO raccourcis
// Ajouter les éléments au menu "Fichier"
Fichier.add(Ouvrir);
Fichier.add(Fermer);
// Ajouter le menu à la barre de menu
menubar.add(Fichier);
// Création du menu "Fichier"
// Ajoute le menu "Fichier" dans la liste des menus
menuList.add(Fichier);
// Créer les éléments du menu et sous menu
// Ajoute Ouvrir et Fermer dans la liste des sous menu
itemList.add(Ouvrir);
itemList.add(Fermer);
// Ajoute le menu à la barre de menu
this.add(Fichier);
}
/**
* Méthode qui gère les actions des JMenuItem
* Méthode qui gère les actions des sous-menus
*
* @param ae un action event
*/
public void actionPerformed(ActionEvent ae) {
String choice = ae.getActionCommand();
if (choice.equals("Ouvrir")) {
try {
PDF doc;
doc = new PDF(SelectionnerFichier.ouvrirFichier());
/* Creation du JScrollPane contenant notre PDF pour pouvoir scroller */
JScrollPane scrollPane = new JScrollPane(doc);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
/* Ajout du ScrollPane dans la frame et mise à jour de la frame */
frame.add(scrollPane);
frame.validate();
} catch (IOException e) {
e.printStackTrace();
switch (choice) {
case "Ouvrir" -> {
File fichier = SelectionnerFichier.ouvrirFichier();
fenetre.chargerPdf(fichier);
}
}else if (choice.equals("Fermer")) {
System.exit(0); // TODO à changer pour que ça quitte vraiment
case "Fermer" -> System.exit(
0); // TODO à changer pour que ça quitte vraiment
}
}
/**
* @return le menubar
*/
public JMenuBar getMenuBar() {
return menubar;
}
/**
* @return l'ArrayList des JMenuItem
* @return la liste des JMenuItem
*/
public ArrayList<JMenuItem> getMenuItems() {
return itemList;
}
/**
* @return l'item de l'ArrayList des JMenuBar à l'index indiqué
* Methode qui renvoie le sous menu demandé
*
* @param index Indice du sous menu
* @return Le sous menu demandé
*/
public JMenuItem getMenuItem(int index) {
return itemList.get(index);