package fr.iutfbleau.papillon; import java.awt.event.*; import javax.swing.*; import java.awt.*; /** * La classe FenetreRappel représente la fenêtre d’affichage * détaillée d’un rappel dans l’application Papillon. *

* Elle affiche les informations complètes du rappel sélectionné * (titre, contenu, thème, et priorité) et permet à l’utilisateur * de le modifier ou de fermer la fenêtre. *

* * @version 1.0 * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL */ public class FenetreRappel extends JFrame implements ActionListener{ /** Bouton permettant de fermer la fenêtre. */ private final JButton btnFermer = new JButton("Fermer"); /** Bouton permettant d’ouvrir la fenêtre de modification du rappel. */ private final JButton btnModifier = new JButton("Modifier"); /** Référence vers la fenêtre principale de l’application. */ private final Main main; /** Référence vers le rappel à afficher. */ private Rappel rappel; /** * Constructeur de la fenêtre d’affichage d’un rappel. * * @param r le rappel à afficher * @param main la fenêtre principale */ public FenetreRappel(Rappel r, Main main) { super("Rappel : " + r.getTitre()); ImageIcon logo = new ImageIcon("logo.png"); setIconImage(logo.getImage()); this.main = main; this.rappel = r; setSize(350, 250); setLocationRelativeTo(null); setResizable(false); setAlwaysOnTop(true); setLocation(main.getLocation()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(new GridBagLayout()); panel.setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15)); JLabel titre = new JLabel("

" + r.getTitre() + "

"); JTextArea contenu = new JTextArea(r.getContenu()); contenu.setLineWrap(true); contenu.setWrapStyleWord(true); contenu.setEditable(false); JLabel infos = new JLabel("Thème : " + r.getTheme() + "
Rang : " + r.getRang() + "
"); GridBagConstraints c = new GridBagConstraints(); c.insets = new Insets(4, 4, 4, 4); c.fill = GridBagConstraints.HORIZONTAL; panel.add(titre, c); c.gridy = 1; c.weightx = 1.0; c.weighty = 1.0; c.gridwidth = 2; c.fill = GridBagConstraints.BOTH; panel.add(new JScrollPane(contenu), c); c.gridx = 0; c.gridy = 2; c.weightx = 0; c.weighty = 0; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.WEST; panel.add(infos, c); btnModifier.addActionListener(this); btnFermer.addActionListener(this); JPanel btnPanel = new JPanel(); c.gridx = 1; c.gridy = 2; c.weightx = 0; c.weighty = 0; c.anchor = GridBagConstraints.EAST; btnPanel.add(btnModifier); btnPanel.add(btnFermer); panel.add(btnPanel, c); setContentPane(panel); setVisible(true); main.dispose(); } /** * Gère les actions effectuées sur les boutons de la fenêtre. * * * @param e l’événement d’action déclenché */ @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btnFermer) { Main reParent = new Main(); reParent.setLocation(this.getLocation()); reParent.setVisible(true); this.dispose(); } else if (e.getSource() == btnModifier) { FenetreModif f = new FenetreModif(main,rappel); f.setVisible(true); this.dispose(); } } }