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);
+67 -68
View File
@@ -1,68 +1,67 @@
/*
* MenuTest.java, 25/11/2021
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menu;
import lecteur_pdf.document.Page;
import org.junit.jupiter.api.Test;
import javax.swing.*;
import java.sql.SQLOutput;
import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;
/**
* Tests de la classe {@link Page}
*
* @author Léo FRANCH
* @author Tristan NOGARET
* @author Lucàs VABRE
* @author Noé VILLENEUVE
*/
class MenuTest {
@Test
void getMenuItems() {
final String[] itemAttendu = {"Ouvrir", "Fermer"};
Menu menuTest = new Menu(new JFrame());
ArrayList<JMenuItem> menuItemTest = menuTest.getMenuItems();
for (int i = 0; i < menuItemTest.size(); i++) {
assertEquals(itemAttendu[i], menuItemTest.get(i).getText());
}
}
@Test
void getMenuItem() {
final String[] itemAttendu = {"Ouvrir", "Fermer"};
Menu menuTest = new Menu(new JFrame());
for (int i = 0; i < itemAttendu.length; i++) {
assertEquals(menuTest.getMenuItem(i).getText(), itemAttendu[i]);
}
}
@Test
void testMenu() {
// Frame de test
JFrame frame = new JFrame("Menu ouverture");
// Créer le Menu
Menu menu = new Menu(new JFrame());
// Ajouter la barre de menu au frame
frame.setJMenuBar(menu.getMenuBar());
frame.setSize(300,300);
frame.setLayout(null);
frame.setVisible(true);
}
}
///*
// * MenuTest.java, 25/11/2021
// * IUT Rodez 2021-2022, INFO 2
// * pas de copyright, aucun droits
// */
//
//package lecteur_pdf.menu;
//
//import lecteur_pdf.document.Page;
//import org.junit.jupiter.api.Test;
//
//import javax.swing.*;
//
//import java.util.ArrayList;
//
//import static org.junit.jupiter.api.Assertions.*;
//
///**
// * Tests de la classe {@link Page}
// *
// * @author Léo FRANCH
// * @author Tristan NOGARET
// * @author Lucàs VABRE
// * @author Noé VILLENEUVE
// */
//class MenuTest {
//
// @Test
// void getMenuItems() {
//
// final String[] itemAttendu = {"Ouvrir", "Fermer"};
//
// Menu menuTest = new Menu(this);
// ArrayList<JMenuItem> menuItemTest = menuTest.getMenuItems();
//
// for (int i = 0; i < menuItemTest.size(); i++) {
// assertEquals(itemAttendu[i], menuItemTest.get(i).getText());
// }
// }
//
// @Test
// void getMenuItem() {
//
// final String[] itemAttendu = {"Ouvrir", "Fermer"};
//
// Menu menuTest = new Menu(this);
//
// for (int i = 0; i < itemAttendu.length; i++) {
// assertEquals(menuTest.getMenuItem(i).getText(), itemAttendu[i]);
// }
// }
//
// @Test
// void testMenu() {
// // Frame de test
// JFrame frame = new JFrame("Menu ouverture");
//
// // Créer le Menu
// Menu menu = new Menu(this);
//
// // Ajouter la barre de menu au frame
// frame.setJMenuBar(menu.getMenuBar());
// frame.setSize(300,300);
// frame.setLayout(null);
// frame.setVisible(true);
// }
//}
@@ -1,27 +1,18 @@
package lecteur_pdf.menu;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import java.io.File;
import lecteur_pdf.menu.Menu;
import javax.swing.*;
class SelectionnerFichierTest {
/**
* TODO comment main
*
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame("Test Menu ouverture");
Menu menu = new Menu(frame);
frame.setJMenuBar(menu.getMenuBar());
frame.setSize(300,300);
frame.setLayout(null);
frame.setVisible(true);
}
// /**
// * TODO comment main
// *
// * @param args
// */
// public static void main(String[] args) {
// JFrame frame = new JFrame("Menu ouverture");
// Menu menu = new Menu(this);
// frame.setJMenuBar(menu.getMenuBar());
// frame.setSize(300,300);
// frame.setLayout(null);
// frame.setVisible(true);
// }
}