package com.plutonium.editoux; 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; /* Menu - Items */ 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() { 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); 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); } /** * @param fichier : * le fichier à ouvrir */ private void ouvrir(File fichier) { try { boolean readable = fichier.canRead(); boolean exist = fichier.exists(); String filename = fichier.getName(); String path = fichier.getAbsolutePath(); if (fichier.exists()) { /* Tampon de lecture */ BufferedReader bfreader = new BufferedReader(new FileReader(path)); /* Lecture d'une ligne */ String s = bfreader.readLine(); while (s != null) { /* Affichage de la ligne lue */ chmptxt.append(s + "\n"); /* Lire une nouvelle ligne */ s = bfreader.readLine(); } /* Fermeture du tampon */ bfreader.close(); } else { JOptionPane.showMessageDialog(this, "Le fichier n'existe pas !!", "Fichier inexistant", JOptionPane.ERROR_MESSAGE); return; } } catch (Exception e) { System.err.println("Erreur d'ouverture de fichier."); e.printStackTrace(); } } public void actionPerformed(ActionEvent event) { if (event.getSource() == iouvrir) { int choix = selecteurFichier.showOpenDialog(null); if (choix == JFileChooser.APPROVE_OPTION) { file = selecteurFichier.getSelectedFile(); boolean readable = file.canRead(); if (readable) { ouvrir(file); } else { JOptionPane.showMessageDialog(null, "Ne peut trouver le fichier", "Fichier inexistant", JOptionPane.ERROR_MESSAGE); return; } } } else if (event.getSource() == iquitter) { System.exit(0); } // else if (event.getSource() == treset ) { // champtxt.setText(""); // } } public static void main(String[] args) { Editoux sf = new Editoux(); sf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); sf.setLocationRelativeTo(null); } }