import java.awt.BorderLayout; import java.awt.Color; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSeparator; import javax.swing.JTextArea; import javax.swing.JToolBar; public class Editoux extends JFrame implements ActionListener { File fichier; // Variable Fichier /* Private > Utilisable QUE dans cette class */ private JMenuItem inouveau; private JMenuItem iouvrir; private JMenuItem ienregistrer; private JMenuItem ienregistrersous; private JMenuItem iquitter; private JMenuItem icouper; private JMenuItem icopier; private JMenuItem icoller; private JMenuItem ipropos; private JTextArea chmptxt; private JFileChooser selecteurFichier; private File file = null; public Editoux() { /* Je dessine l'interface graphique */ interfaceGraphik(); /* Paramètres de ma fenêtre */ setTitle("Editoux"); setSize(800, 800); setVisible(true); /* Icône de ma Fenêtre */ Image icone = Toolkit.getDefaultToolkit().getImage("ico.gif"); this.setIconImage(icone); } private void interfaceGraphik() { // Mon interface graphique JPanel pan1 = new JPanel(); JPanel pan2 = new JPanel(); pan1.setLayout(new BorderLayout()); pan2.setLayout(new BorderLayout()); JMenuBar menubar = new JMenuBar(); JMenu mfichier = new JMenu("Fichier"); JMenu medition = new JMenu("Edition"); JMenu maide = new JMenu("Aide"); JSeparator iseparator1 = new JSeparator(); JSeparator iseparator2 = new JSeparator(); inouveau = new JMenuItem("Nouveau"); inouveau.addActionListener(this); iouvrir = new JMenuItem("Ouvrir"); iouvrir.addActionListener(this); ienregistrer = new JMenuItem("Enregistrer"); ienregistrer.addActionListener(this); ienregistrersous = new JMenuItem("Enregistrer Sous"); ienregistrersous.addActionListener(this); iquitter = new JMenuItem("Quitter"); iquitter.addActionListener(this); icouper = new JMenuItem("Couper"); icouper.addActionListener(this); icopier = new JMenuItem("Copier"); icopier.addActionListener(this); icoller = new JMenuItem("Coller"); icoller.addActionListener(this); ipropos = new JMenuItem("A propos"); ipropos.addActionListener(this); /* ToolBar */ JToolBar toolbar = new JToolBar(); /* ToolBar - Eléments */ ImageIcon imgnouveau = new ImageIcon("imgnouveau.gif"); JButton tnouveau = new JButton(imgnouveau); tnouveau.setToolTipText("Nouveau Document"); // Info Bulle tnouveau.setFocusPainted(false); // Rendre tnouveau.setBorderPainted(false); // Transparent tnouveau.setContentAreaFilled(false); // JButton ImageIcon imgouvrir = new ImageIcon("imgouvrir.gif"); JButton touvrir = new JButton(imgouvrir); touvrir.setToolTipText("Ouvrir"); touvrir.setForeground(Color.red); touvrir.setFocusPainted(false); touvrir.setBorderPainted(false); touvrir.setContentAreaFilled(false); ImageIcon imgenregistrer = new ImageIcon("imgenregistrer.gif"); JButton tenregistrer = new JButton(imgenregistrer); tenregistrer.setToolTipText("Enregistrer"); tenregistrer.setForeground(Color.red); tenregistrer.setFocusPainted(false); tenregistrer.setBorderPainted(false); tenregistrer.setContentAreaFilled(false); ImageIcon imgenregistrersous = new ImageIcon("imgenregistrersous.gif"); JButton tenregistrersous = new JButton(imgenregistrersous); tenregistrersous.setToolTipText("Enregistrer sous..."); tenregistrersous.setForeground(Color.red); tenregistrersous.setFocusPainted(false); tenregistrersous.setBorderPainted(false); tenregistrersous.setContentAreaFilled(false); /* Menu pour les Fichiers */ selecteurFichier = new JFileChooser(); selecteurFichier.setCurrentDirectory(new File(".")); /* TextArea */ chmptxt = new JTextArea(); JScrollPane scrollpan = new JScrollPane(chmptxt); // Mettre un scroll mfichier.add(inouveau); mfichier.add(iouvrir); mfichier.add(iseparator1); mfichier.add(ienregistrer); mfichier.add(ienregistrersous); mfichier.add(iseparator2); mfichier.add(iquitter); iquitter.addActionListener(this); // Ajout action medition.add(icouper); medition.add(icopier); medition.add(icoller); maide.add(ipropos); toolbar.add(tnouveau); toolbar.add(touvrir); toolbar.add(tenregistrer); toolbar.add(tenregistrersous); menubar.add(mfichier); menubar.add(medition); menubar.add(maide); pan2.add(toolbar, BorderLayout.NORTH); pan2.add(scrollpan, BorderLayout.CENTER); pan1.add(menubar, BorderLayout.NORTH); pan1.add(pan2, BorderLayout.CENTER); setContentPane(pan1); } private void ouvrir(File fichier) { try { boolean readable = fichier.canRead(); // Voir si on peut le lire boolean exist = fichier.exists(); // Voir si il existe String filename = fichier.getName(); // Choper le nom String path = fichier.getAbsolutePath(); if (fichier.exists()) { // Si le fichier existe : /* Préparation pour la lecture */ BufferedReader bfreader = new BufferedReader(new FileReader(path)); /* Lecture d'une ligne */ String s = bfreader.readLine(); while (s != null) { /* Affiche la ligne lue */ chmptxt.append(s + "\n"); /* Lire une nouvelle ligne */ s = bfreader.readLine(); } /* Fermeture du tampon */ bfreader.close(); } else { // Si il n'existe pas : JOptionPane.showMessageDialog(this, "Ce fichier est inconnu...", "Fichier inexistant", JOptionPane.ERROR_MESSAGE); return; } } catch (Exception e) { // Si y'a erreur dans le try : System.err.println("Erreur d'ouverture du fichier."); e.printStackTrace(); } } private void enregistrer(File fichier){ try { JFileChooser filechoose = new JFileChooser(); filechoose.setCurrentDirectory(new File(".")); String approve = new String(ienregistrer); int resultatEnregistrer = filechoose.showDialog(filechoose, approve); // Pour afficher le JFileChooser if (resultatEnregistrer == JFileChooser.APPROVE_OPTION) { String monFichier= new String(filechoose.getSelectedFile().toString()); if(monFichier.endsWith(".txt") || monFichier.endsWith(".txt")) {;} else (monFichier = monFichier+ ".txt") { try { FileWriter lu = new FileWriter(monFichier); BufferedWriter out = new BufferedWriter(lu); out.write(textArea.getText()); // out.close(); } catch (IOException er) {;} } } } catch (IOException er) {;} } public void actionPerformed(ActionEvent event) { if (event.getSource() == iouvrir) { // action du iouvrir int choix = selecteurFichier.showOpenDialog(null); // Ouvre le selecteur if (choix == JFileChooser.APPROVE_OPTION) { // Choix du fichier file = selecteurFichier.getSelectedFile(); boolean readable = file.canRead(); if (readable) { ouvrir(file); } else { JOptionPane.showMessageDialog(null, "Ce fichier est inconnu...", "Fichier inexistant", JOptionPane.ERROR_MESSAGE); return; } } } else if (event.getSource() == iquitter) { // Quitter le soft System.exit(0); } } public static void main(String[] args) { Editoux sf = new Editoux(); sf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); sf.setLocationRelativeTo(null); } }