Untitled
Never
package ihm.tp4.vue; import ihm.tp4.controleurs.ControleurAuteur; import ihm.tp4.controleurs.ControleurLivre; import ihm.tp4.controleurs.ControleurPrecedent; import ihm.tp4.controleurs.ControleurSuivant; import ihm.tp4.controleurs.ControleurSupprimer; import ihm.tp4.modele.Auteur; import ihm.tp4.modele.Bibliotheque; import ihm.tp4.modele.Livre; import javax.swing.*; import java.awt.*; /** * @author lanoix-a * @version 2019 */ public class AppliBibliotheque extends JFrame { // La vue connait le modèle private Bibliotheque biblio; // Les éléments de la vue soumis à modification private JButton livreSuivant; private JButton livrePrecedent; private JButton supprimerLivre; private JLabel afficheTitre; private JLabel afficheCategorie; private JLabel afficheAuteur; private JTextField zoneTexteTitre; private ButtonGroup group; private JRadioButton horror; private JRadioButton fantasy; private JRadioButton sf; private JComboBox choixAuteurs; private JTextField zoneTexteNom; private JTextField zoneTextePrenom; /** * consrtruit une nouvelle fenêtre * * @param titre titre de la fenêtre */ public AppliBibliotheque(String titre) { super(titre); // création d'une nouvelle bibliothèque biblio = new Bibliotheque(); // mise en page des différents JComponents JPanel zones = new JPanel(); zones.setLayout(new GridLayout(3, 1)); this.getContentPane().add(zones); // JComponents affichant un livre : JPanel panelAffich = new JPanel(); panelAffich.setLayout(new BorderLayout()); panelAffich.setBorder(BorderFactory .createTitledBorder("Consultation des livres")); livreSuivant = new JButton(">"); livrePrecedent = new JButton("<"); panelAffich.add(livreSuivant, BorderLayout.EAST); panelAffich.add(livrePrecedent, BorderLayout.WEST); livrePrecedent.setEnabled(false); JPanel panelAffich2 = new JPanel(); panelAffich2.setLayout(new GridLayout(3, 1)); afficheTitre = new JLabel(""); panelAffich2.add(afficheTitre); afficheCategorie = new JLabel(""); panelAffich2.add(afficheCategorie); afficheAuteur = new JLabel(""); panelAffich2.add(afficheAuteur); panelAffich.add(panelAffich2, BorderLayout.CENTER); zones.add(panelAffich); // affiche le 1er livre modifierAffichageLivre(); // JComponents ajoutant un auteur JPanel panelAuteur = new JPanel(); panelAuteur.setLayout(new BorderLayout()); panelAuteur.setBorder(BorderFactory .createTitledBorder("Ajout d'un auteur")); JButton ajoutAuteur = new JButton("+"); panelAuteur.add(ajoutAuteur, BorderLayout.EAST); JPanel panelAuteur2 = new JPanel(); panelAuteur2.setLayout(new GridLayout(4, 1)); panelAuteur2.add(new JLabel("Nom :")); zoneTexteNom = new JTextField(""); zoneTexteNom.setColumns(40); panelAuteur2.add(zoneTexteNom); panelAuteur2.add(new JLabel("Prénom :")); zoneTextePrenom = new JTextField(""); zoneTextePrenom.setColumns(40); panelAuteur2.add(zoneTextePrenom); panelAuteur.add(panelAuteur2, BorderLayout.CENTER); zones.add(panelAuteur); // JComponents ajoutant un livre JPanel panelAjout = new JPanel(); panelAjout.setLayout(new BorderLayout()); panelAjout.setBorder(BorderFactory .createTitledBorder("Ajout d'un livre")); JButton ajoutLivre = new JButton("+"); supprimerLivre = new JButton("-"); panelAjout.add(supprimerLivre, BorderLayout.WEST); panelAjout.add(ajoutLivre, BorderLayout.EAST); JPanel panelAjout2 = new JPanel(); panelAjout2.setLayout(new GridLayout(4, 1)); panelAjout2.add(new JLabel("Titre :")); zoneTexteTitre = new JTextField(""); zoneTexteTitre.setColumns(40); panelAjout2.add(zoneTexteTitre); horror = new JRadioButton("Horror"); fantasy = new JRadioButton("Fantasy"); sf = new JRadioButton("SF"); ButtonGroup group = new ButtonGroup(); group.add(horror); group.add(fantasy); group.add(sf); panelAjout2.add(horror); panelAjout2.add(fantasy); panelAjout2.add(sf); choixAuteurs = new JComboBox(biblio.donneTousLesAuteurs()); panelAjout2.add(choixAuteurs); panelAjout.add(panelAjout2, BorderLayout.CENTER); zones.add(panelAjout); // Abonnement // les controleurs connaissent le modèle ET la vue // TODO ControleurSuivant bouton1 = new ControleurSuivant(this,this.biblio); livreSuivant.addActionListener(bouton1); ControleurPrecedent bouton2 = new ControleurPrecedent(this,this.biblio); livrePrecedent.addActionListener(bouton2); ControleurAuteur bouton3 = new ControleurAuteur(this,this.biblio); ajoutAuteur.addActionListener(bouton3); ControleurLivre bouton4 = new ControleurLivre(this,this.biblio); ajoutLivre.addActionListener(bouton4); ControleurSupprimer bouton5 = new ControleurSupprimer(this,this.biblio); supprimerLivre.addActionListener(bouton5); /* **************** */ this.setPreferredSize(new Dimension(500, 370)); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.pack(); this.setVisible(true); } /** * méthode principale éxécutable * * @param args */ public static void main(String[] args) { new AppliBibliotheque("Ma Bibliothèque"); } /** * modifie la vue affichant un livre en récupérant les données dans le * modèle */ public void modifierAffichageLivre() { Livre livre = biblio.donneLivre(); System.out.println(livre); afficheTitre.setText("<html><b>"+livre.donneTitre()+"</b></html>"); afficheCategorie.setText(livre.donneCategorie()); afficheAuteur.setText("<html><i>"+livre.donneAuteur().toString()+"</i></html>"); } /** * @return le texte présent dans le JTextField zoneTexteNom */ public String donneNomAjout() { return zoneTexteNom.getText(); } /** * @return le texte présent dans le JTextField zoneTextePrenom */ public String donnePrenomAjout() { return zoneTextePrenom.getText(); } /** * ajoute un auteur à la liste déroulante des auteurs * * @param nouveau auteur à ajouter */ public void ajoutChoixAuteurs(Auteur nouveau) { choixAuteurs.addItem(nouveau); } /** * @return le texte présent dans la JTextField zoneTexteTitre */ public String donneTitreAjout() { return zoneTexteTitre.getText(); } /** * @return la catégorie choisie dans la liste déroulante des catégories */ public String donneCategorieAjout() { if(horror.isSelected()) { return horror.getText(); } if(fantasy.isSelected()) { return fantasy.getText(); } if(sf.isSelected()) { return sf.getText(); } else { return ""; } } /** * @return l'auteur choisi dans la liste déroulante des auteurs */ public Auteur donneAuteurAjout() { return (Auteur) choixAuteurs.getSelectedItem(); } /** * active / désactive le Bouton permettant de passer au livre suivant * * @param etat vrai si le bouton doit être activé */ public void activerBoutonSuivant(boolean etat) { livreSuivant.setEnabled(etat); } /** * active / désactive le Bouton permettant de passer au livre précédent * * @param etat vrai si le bouton doit être activé */ public void activerBoutonPrecedent(boolean etat) { livrePrecedent.setEnabled(etat); } }
Raw Text
-
Untitled
52 sec ago
-
fthdfthdgd
7 min ago
-
The housewife seduced the courier who brought her the order and fucked him on the floor
10 min ago
-
Jacobs and Jacobs Wrongful Death Lawyers
10 min ago
-
dfdsf sdsd sdfdsf dfsd dsfdfs fdsfdsfd
12 min ago
-
dgerdfb
24 min ago
-
Untitled
24 min ago
-
wATCH- 2024 (.FuLLMovie.) online 𝟏𝟐𝟑𝐌𝐎𝐕𝐈𝐄𝐒
32 min ago
-
Untitled
33 min ago
-
MILF & NEIGHBOR EP.3 - Squirts on Car While Getting Help from Neighbor - Intense Anal
39 min ago