diff --git a/LecteurPdfDoubleAffichage.iml b/LecteurPdfDoubleAffichage.iml index 70f263c..23ec963 100644 --- a/LecteurPdfDoubleAffichage.iml +++ b/LecteurPdfDoubleAffichage.iml @@ -35,5 +35,6 @@ + \ No newline at end of file diff --git a/src/lecteur_pdf/affichage/Fenetre.java b/src/lecteur_pdf/affichage/Fenetre.java index b3bbe99..d94743f 100644 --- a/src/lecteur_pdf/affichage/Fenetre.java +++ b/src/lecteur_pdf/affichage/Fenetre.java @@ -12,6 +12,7 @@ import lecteur_pdf.menu.Menu; import javax.swing.*; import java.awt.*; import java.io.File; +import java.io.IOException; /** * classe correspondant à l’objet Fenêtre @@ -75,7 +76,7 @@ public class Fenetre extends JFrame { * * @param fichier */ - public void chargerPDF(File fichier) { + public void chargerPDF(File fichier) throws IOException { dechargerPDF(); this.fichier = fichier; @@ -106,7 +107,7 @@ public class Fenetre extends JFrame { /** * */ - public void rechargerPDF(float zoom) { + public void rechargerPDF(float zoom) throws IOException{ dechargerPDF(); /* Crée le panel qui contient le document PDF */ diff --git a/src/lecteur_pdf/document/PDF.java b/src/lecteur_pdf/document/PDF.java index 00a8fa3..05a753d 100644 --- a/src/lecteur_pdf/document/PDF.java +++ b/src/lecteur_pdf/document/PDF.java @@ -46,17 +46,17 @@ public class PDF extends JPanel { * @param fichier Le fichier PDF que l’on veut ouvrir * @throws IllegalArgumentException si le fichier n’existe pas */ - public PDF(File fichier) { - try { + public PDF(File fichier) throws IOException{ + // try { this.document = PDDocument.load(fichier); this.pages = new Page[document.getNumberOfPages()]; this.zoom = 1.0f; this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); this.setAlignmentX(Component.CENTER_ALIGNMENT); - } catch (IOException e) { - throw new IllegalArgumentException(); - } + // } catch (IOException e) { + // throw new IllegalArgumentException(); + // } } /** diff --git a/src/lecteur_pdf/menu/Menu.java b/src/lecteur_pdf/menu/Menu.java index 9db2d3e..c511972 100644 --- a/src/lecteur_pdf/menu/Menu.java +++ b/src/lecteur_pdf/menu/Menu.java @@ -10,11 +10,12 @@ import lecteur_pdf.affichage.Fenetre; import org.apache.pdfbox.pdmodel.PDDocument; import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.io.File; +import java.io.IOException; import java.util.ArrayList; - /** * Classe pour afficher le Menu "Fichier" avec ses options * @@ -185,24 +186,39 @@ public class Menu extends JMenuBar { */ public void actionPerformed(ActionEvent ae) { String choice = ae.getActionCommand(); - + String messageErrCorrompu = "Une erreur s'est produite dans le chargement de votre document, il a peut-être été corrompu. "; switch (choice) { case "Ouvrir" -> { - File fichier = SelectionnerFichier.ouvrirFichier(); - if (fichier != null) { + try { + File fichier = SelectionnerFichier.ouvrirFichier(); fenetre.chargerPDF(fichier); + }catch (IOException e) { + JOptionPane.showMessageDialog(fenetre,messageErrCorrompu); } } - case "Fermer" -> { - fenetre.dechargerPDF(); - fenetre.validate(); - fenetre.setSize(300, 300); + case "Fermer" -> popupfermer(fenetre); + case "Quitter" -> popupquitter(fenetre); + case "Zoom +" -> { + try { + fenetre.rechargerPDF(2.0f); + } catch (IOException e) { + JOptionPane.showMessageDialog(fenetre,messageErrCorrompu); + } + } + case "Zoom 0" -> { + try { + fenetre.rechargerPDF(1.0f); + } catch (IOException e) { + JOptionPane.showMessageDialog(fenetre,messageErrCorrompu); + } + } + case "Zoom -" -> { + try { + fenetre.rechargerPDF(0.5f); + } catch (IOException e) { + JOptionPane.showMessageDialog(fenetre,messageErrCorrompu); + } } - case "Quitter" -> System.exit( - 0); - case "Zoom +" -> fenetre.rechargerPDF(2.0f); - case "Zoom 0" -> fenetre.rechargerPDF(1.0f); - case "Zoom -" -> fenetre.rechargerPDF(0.5f); } } @@ -222,4 +238,44 @@ public class Menu extends JMenuBar { public JMenuItem getMenuItem(int index) { return itemList.get(index); } + + + public void popupfermer(Fenetre fenetre){ + JDialog jd = new JDialog(fenetre); + jd.setLayout(new FlowLayout()); + jd.setBounds(500,300,400,100); + JLabel jlabel = new JLabel("etes vous sûr de vouloir fermer ? "); + JButton oui = new JButton("oui"); + oui.addActionListener(e -> { + fenetre.documentPDF.removeAll(); + fenetre.documentPDF.revalidate(); + fenetre.documentPDF.repaint(); + jd.setVisible(false); + }); + JButton non = new JButton("non"); + non.addActionListener(e -> jd.setVisible(false)); + jd.add(jlabel); + jd.add(oui); + jd.add(non); + jd.setVisible(true); + } + + private void popupquitter(Fenetre fenetre) { + JDialog jd = new JDialog(fenetre); + jd.setLayout(new FlowLayout()); + jd.setBounds(500,300,400,100); + JLabel jlabel = new JLabel("etes vous sûr de vouloir quitter ? "); + JButton oui = new JButton("oui"); + oui.addActionListener(e -> { + System.exit(0); + jd.setVisible(false); + }); + JButton non = new JButton("non"); + non.addActionListener(e -> jd.setVisible(false)); + jd.add(jlabel); + jd.add(oui); + jd.add(non); + jd.setVisible(true); + + } } \ No newline at end of file diff --git a/tests/lecteur_pdf/document/PDFTest.java b/tests/lecteur_pdf/document/PDFTest.java index bf2c6ec..a05480b 100644 --- a/tests/lecteur_pdf/document/PDFTest.java +++ b/tests/lecteur_pdf/document/PDFTest.java @@ -21,12 +21,12 @@ class PDFTest { frame.setBackground(Color.gray); frame.setVisible(true); - PDF doc = new PDF(new File("C:/Users/public/test.pdf")); + //PDF doc = new PDF(new File("C:/Users/public/test.pdf")); - JScrollPane scrollPane = new JScrollPane(doc); - scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - frame.add(scrollPane); + //JScrollPane scrollPane = new JScrollPane(doc); + //scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + //scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + //frame.add(scrollPane); frame.validate(); }