Soyez le premier à donner votre avis sur cette source.
Vue 7 474 fois - Téléchargée 1 914 fois
/* Amimi Raouf */ /** la class Editeur **/ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Editeur extends JFrame implements ActionListener{ private List cathegorieList, titreList; private TextField titreTF, cathegorieTF; private Button bouton_ajouter, bouton_supprimer, bouton_creer, bouton_retour, bouton_supprimer_cathegorie; private JLabel titreLabel, cathegorieLabel, ErreurLabel; private Container contenu; private BufferedWriter ecriture; private BufferedReader lecture; private File fichier; /** constructeur **/ public Editeur(){ super("CD Archiver: Editeur d'archive"); // initialisation // fichier = new File("Archives"); cathegorieList = new List(); String[] liste = fichier.list(); Outil.trier(liste); afficher(liste, cathegorieList); cathegorieList.addActionListener(this); titreList = new List(); titreTF = new TextField(); cathegorieTF = new TextField(); bouton_ajouter = new Button("Ajouter"); bouton_ajouter.addActionListener(this); bouton_creer = new Button("<<< Ajouter la cathégorie"); bouton_creer.addActionListener(this); bouton_retour = new Button("Retour au menu principal"); bouton_retour.addActionListener(this); bouton_supprimer = new Button("Supprimer"); bouton_supprimer.addActionListener(this); bouton_supprimer_cathegorie = new Button(">>> Supprimer la cathégorie"); bouton_supprimer_cathegorie.addActionListener(this); titreLabel = new JLabel("Titre du CD: "); cathegorieLabel = new JLabel("Nouvelle cathégorie: "); ErreurLabel = new JLabel("<!>:"); contenu = getContentPane(); fichier = new File("Archive"); try{ ecriture = null; lecture = null; } catch(Exception e){} // Repartition des Composants // Panel donneePanel = new Panel(); donneePanel.setLayout(new GridLayout(8,1,10,10)); donneePanel.setSize(400, 460); donneePanel.add(titreLabel); donneePanel.add(titreTF); donneePanel.add(bouton_ajouter); donneePanel.add(bouton_supprimer); donneePanel.add(cathegorieLabel); donneePanel.add(cathegorieTF); donneePanel.add(bouton_creer); donneePanel.add(bouton_supprimer_cathegorie); Panel boutonPanel = new Panel(); boutonPanel.setLayout(new BorderLayout(10,10)); boutonPanel.add(bouton_retour,"South"); boutonPanel.add(ErreurLabel,"North"); Panel cathegoriePanel = new Panel(); cathegoriePanel.setLayout(new BorderLayout(0,5)); cathegoriePanel.add(new JLabel("Cathégories: ", JLabel.LEFT), "North"); cathegoriePanel.add(cathegorieList, "Center"); Panel titrePanel = new Panel(); titrePanel.setLayout(new BorderLayout(0,5)); titrePanel.add(new JLabel("Titres: ", JLabel.LEFT), "North"); titrePanel.add(titreList, "Center"); contenu.setLayout(new BorderLayout(10,50)); contenu.add(new JLabel("Appuyer sur ajouter pour ajouter le titre du CD dans la cathégorie selèctionnée.",JLabel.CENTER), "North"); contenu.add(cathegoriePanel, "West"); contenu.add(titrePanel, "Center"); contenu.add(donneePanel, "East"); contenu.add(boutonPanel, "South"); // caracteristiques de la fenetre // setSize(900, 475); setLocation(200, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(true); setIconImage(Toolkit.getDefaultToolkit().getImage("CDA.ICO")); show(); } /** Action Listener **/ public void actionPerformed(ActionEvent event){ String s = event.getActionCommand(); ErreurLabel.setText("<!>:"); if(s.equals("Retour au menu principal")){// le bouton_retour new MenuPrincipal(); hide(); } else{ if(s.equals("<<< Ajouter la cathégorie")){// le bouton_creer try{ String texte = cathegorieTF.getText().toUpperCase(); if(!texte.equals("")){ cathegorieList.add(texte); new BufferedWriter(new FileWriter(new File("Archives/"+texte+".archive"))).close(); cathegorieTF.setText(""); } else{ int a = 3/0; } } catch(Exception error){ ErreurLabel.setText("<!>: Entrer le nom de la cathégorie à ajouter !!"); }; } else{ if(s.equals(">>> Supprimer la cathégorie")){// le bouton_supprimer try{ String selection = cathegorieList.getSelectedItem(); cathegorieList.remove(selection); titreList.removeAll(); fichier = new File("Archives/"+selection+".archive"); fichier.delete(); } catch(Exception error){ ErreurLabel.setText("<!>: Selectionnez la cathégorie à éffacer !!"); }; } else{ if(s.equals("Ajouter")){// le bouton_ajouter try{ String titre = Outil.reecrire(titreTF.getText()); if(titre.equals("")){ int a = 3/0;} fichier = new File("Archives/"+cathegorieList.getSelectedItem()+".archive"); ecriture = new BufferedWriter(new FileWriter(fichier)); titreList.add(titre); String[] liste = titreList.getItems(); Outil.trier(liste); for(int n = 0; n < liste.length; n++){ ecriture.write(liste[n]); ecriture.newLine(); } ecriture.close(); titreTF.setText(""); } catch(Exception erreur){ ErreurLabel.setText("<!>: Entrez le titre du cd et selectionnez une cathégorie !!!"); } } else{ if(s.equals("Supprimer")){// le bouton_supprimer try{ String titre = titreList.getSelectedItem(); System.out.println("\n\n le titre a effacer : "+titre); titreList.remove(titre); String[] donnees = titreList.getItems(); fichier = new File("Archives/"+cathegorieList.getSelectedItem()+".archive"); ecriture = new BufferedWriter(new FileWriter(fichier)); for(int index = 0; index < donnees.length; index++){ ecriture.write(donnees[index]); ecriture.newLine(); } ecriture.close(); } catch(Exception erreur){ ErreurLabel.setText("<!>: Selectionnez le titre à supprimer !!!"); } } else{// cliquez deux fois sur un element de la liste try{ titreList.removeAll(); fichier = new File("Archives/"+s+".archive"); lecture = new BufferedReader(new FileReader(fichier)); String ligne = ""; while(true){ ligne = lecture.readLine(); if(ligne != null) titreList.add(ligne); else break; } lecture.close(); } catch(Exception erreur){ System.exit(1); } } } } } } } /** La fonction afficher(list) **/ public static void afficher(String[] tab, List liste){ liste.removeAll(); for(int i = 0; i < tab.length; i++){ if(tab[i].endsWith(".archive")) liste.add(tab[i].substring(0, tab[i].length() - 8)); //else liste.add(tab[i]); } } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.