begin process at 2010 02 10 13:33:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > N0TEPAD EN JAVA

N0TEPAD EN JAVA


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Swing Classé sous :notepad, blocnote, éditeur, texte, swing Niveau :Initié Date de création :27/11/2002 Date de mise à jour :27/11/2002 20:26:20 Vu / téléchargé :17 713 / 1 235

Auteur : n0stra

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
une simple adaptation du notepad windows...avec une fonction de recherche qui j'espère est satisfaisante...le truc c'est que dans ce programme sont utilisées diverses notions (ouverture de fichier, sauvegarde,...recherche style "grep", ...). L'interface est en javax.swing. Ce qui peut servir, n'est pas le programme en lui même, mais les techniques utilisées, pas toujours assimilées pour ceux qui débutent...ce qui est normal...

Source

  • import java.util.*;
  • import java.io.*;
  • import java.awt.*;
  • import java.awt.event.*;
  • import javax.swing.*;
  • import javax.swing.border.*;
  • import javax.swing.filechooser.*;
  • /**
  • * Titre : N0tepad
  • * Description : éditeur de texte
  • * Copyright : Copyright n0strat0un(c) 2002
  • * Société : wesh wesh la nôtre !!
  • * @author : n0stra & t0un
  • * @version 1.1
  • */
  • public class N0tepad extends JPanel
  • {
  • static JFrame frame;
  • static JTextArea jta;
  • static JFileChooser fc;
  • static File file;
  • JMenuBar jmb;
  • JMenu jm1;
  • JMenu jm2;
  • JMenu jm3;
  • JMenu jm4;
  • static JMenuItem jmi5;
  • JMenuItem jmi1;
  • JMenuItem jmi2;
  • JMenuItem jmi3;
  • JMenuItem jmi4;
  • JMenuItem jmi6;
  • JMenuItem jmi7;
  • JMenuItem sjm1;
  • JMenuItem sjm2;
  • JCheckBoxMenuItem jmi8;
  • JMenuItem jmi9;
  • JMenuItem jmi10;
  • JMenuItem jmi11;
  • JMenuItem jmi12;
  • //JCheckBoxMenuItem jmi13;
  • String aRecherché;
  • static String nomFenetre = "Sans Titre - N0tepad 1.1";
  • final static String docHTML = new String("<html>\n<head>\n<title> </title>\n<meta name=\"author\" content=\" \">\n<meta name=\"description\" content=\" \">\n<meta name=\"language\" content=\"FR\">\n<meta name=\"copyright\" content=\" \">\n<meta http-equiv=\"reply-to\" content=\" \">\n</head>\n\n<body background=\" \" bgcolor=\"black\" link=\"gray\" vlink=\"gray\" alink=\"darkgray\" text=\"darkgray\">\n\n\n</body>\n</html>");
  • Icon nouvo = new ImageIcon("icons/new.gif");
  • Icon open = new ImageIcon("icons/open.gif");
  • Icon save = new ImageIcon("icons/save.gif");
  • static Icon quit = new ImageIcon("icons/fee.gif");
  • static boolean sauvé = false;
  • //static JCheckBoxMenuItem[] tab_fich_recents = new JCheckBoxMenuItem[5];
  • //static int index_tab = 0;
  • /**
  • *
  • * constructeur de n0tepad
  • *
  • */
  • public N0tepad()
  • {
  • //création de la barre de menus
  • jmb = new JMenuBar();
  • jm1 = new JMenu("Fichier");
  • jm3 = new JMenu("Edition");
  • jm4 = new JMenu("Recherche");
  • jm2 = new JMenu("?");
  • jmi1 = new JMenu("Nouveau");
  • sjm1 = new JMenuItem("Document texte", nouvo);
  • sjm2 = new JMenuItem("Document HTML", nouvo);
  • jmi2 = new JMenuItem("Ouvrir..", open);
  • jmi3 = new JMenuItem("Sauvegarder", save);
  • jmi4 = new JMenuItem("Sauvegarder sous..", save);
  • jmi5 = new JMenuItem("Quitter");
  • jmi6 = new JMenuItem("A propos..");
  • jmi7 = new JMenuItem("Sélectionner tout");
  • jmi10 = new JMenuItem("Copier");
  • jmi11 = new JMenuItem("Couper");
  • jmi12 = new JMenuItem("Coller");
  • jmi8 = new JCheckBoxMenuItem("Retour à la ligne automatique");
  • jmi9 = new JMenuItem("Rechercher..");
  • jmi1.add(sjm1);
  • jmi1.add(sjm2);
  • jmb.add(jm1);
  • jmb.add(jm3);
  • jmb.add(jm4);
  • jmb.add(jm2);
  • jm1.add(jmi1);
  • jm1.add(jmi2);
  • jm1.add(jmi3);
  • jm1.add(jmi4);
  • jm1.addSeparator();
  • jm1.add(jmi5);
  • //jm1.addSeparator();
  • //jm1.add(jmi13);
  • jm2.add(jmi6);
  • jm3.add(jmi10);
  • jm3.add(jmi11);
  • jm3.add(jmi12);
  • jm3.addSeparator();
  • jm3.add(jmi7);
  • jm3.addSeparator();
  • jm3.add(jmi8);
  • jm4.add(jmi9);
  • //initialisation de la boite d'ouverture
  • fc = new JFileChooser();
  • this.setLayout(new BorderLayout(5, 5));
  • //création de la zone d'affichage de texte
  • jta = new JTextArea(30, 60);
  • jta.setEditable(true);
  • //création du panneau "ajustable"
  • JScrollPane jsp = new JScrollPane(jta);
  • jsp.setBorder(BorderFactory.createLineBorder(Color.darkGray, 3));
  • //ajout d'auditeurs aux boutons
  • /**Sélectionner tout**/
  • jmi7.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • jta.selectAll();
  • }
  • });
  • /**retour à la ligne auto**/
  • jmi8.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • if (jmi8.getState() == true) jta.setLineWrap(true);
  • else jta.setLineWrap(false);
  • }
  • });
  • /**nouveau document texte**/
  • sjm1.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • jta.selectAll();
  • jta.replaceSelection("");
  • file = new File("sanstitre.txt");
  • String nomFrame = nomFenetre;
  • frame.setTitle(nomFrame);
  • frame.repaint();
  • sauvé = false;
  • }
  • });
  • /**nouveau document HTML**/
  • sjm2.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • jta.selectAll();
  • jta.replaceSelection(docHTML);
  • file = new File("sanstitre.html");
  • String nomFrame = nomFenetre;
  • frame.setTitle(nomFrame);
  • frame.repaint();
  • sauvé = false;
  • }
  • });
  • /**ouverture**/
  • jmi2.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • int choix = fc.showOpenDialog(frame); //affichage d'une fenêtre "d'ouverture"
  • if(choix == fc.APPROVE_OPTION)
  • {
  • file = fc.getSelectedFile(); //récupère le fichier sélectionné
  • ouverture(file);
  • String nomFrame = file.getName()+" - N0tepad 1.1";
  • frame.setTitle(nomFrame);
  • /*if(index_tab == 5)
  • {
  • index_tab = 0;
  • tab_fich_recents[index_tab] = new JCheckBoxMenuItem(file.getName());
  • jmi13 = tab_fich_recents[index_tab];
  • /**fichiers recents**/
  • /*jmi13.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • if(jmi13.isSelected())
  • {
  • File fichier = new File(jmi13.getName());
  • ouverture(fichier);
  • }
  • }
  • });
  • index_tab += 1;
  • jm1.add(jmi13);
  • }
  • else
  • {
  • tab_fich_recents[index_tab] = new JCheckBoxMenuItem(file.getName());
  • jmi13 = tab_fich_recents[index_tab];
  • /**fichiers recents**/
  • /*jmi13.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • if(jmi13.getState() == true)
  • {
  • File fichier = new File(jmi13.getText());
  • ouverture(fichier);
  • }
  • }
  • });
  • index_tab += 1;
  • jm1.add(jmi13);
  • }*/
  • }
  • frame.repaint();
  • }
  • });
  • /**copier**/
  • jmi10.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • jta.copy();
  • frame.repaint();
  • }
  • });
  • /**couper**/
  • jmi11.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • jta.cut();
  • frame.repaint();
  • }
  • });
  • /**coller**/
  • jmi12.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • jta.paste();
  • frame.repaint();
  • }
  • });
  • /**sauvegarder**/
  • jmi3.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • if (file == null)
  • {
  • int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
  • if(choix == fc.APPROVE_OPTION)
  • {
  • File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
  • sauvegarde(fichier);
  • }
  • }
  • else sauvegarde(file);
  • frame.repaint();
  • }
  • });
  • /**sauvegarder sous**/
  • jmi4.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
  • if(choix == fc.APPROVE_OPTION)
  • {
  • File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
  • sauvegarde(fichier);
  • }
  • frame.repaint();
  • }
  • });
  • /**à propos**/
  • jmi6.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • JOptionPane.showMessageDialog(null, "N0tepad 1.1\nEditeur de texte en Java\n\nversion 1.1", "A propos de N0tepad 1.1", -1);
  • }
  • });
  • /**rechercher**/
  • jmi9.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • if(file != null)
  • {
  • Recherche recherche = new Recherche(file);
  • }
  • }
  • });
  • //mise en place des panneaux intermédiaires
  • this.add(jsp, BorderLayout.CENTER);
  • this.add(jmb, BorderLayout.NORTH);
  • }
  • /**
  • *
  • * méthode qui met en place les marges
  • *
  • * @return insets la valeur des marges(h, b, g, d)
  • */
  • public Insets getInsets()
  • {
  • return new Insets(5, 5, 5, 5);
  • }
  • /**
  • *
  • * méthode d'affichage du fichier à ouvrir
  • *
  • * @param f fichier à ouvrir
  • *
  • */
  • public void ouverture(File f)
  • {
  • //efface la zone de texte
  • jta.selectAll();
  • jta.replaceSelection("");
  • try
  • {
  • //tampon de lecture
  • BufferedReader bfreader = new BufferedReader(new FileReader(f));
  • //lecture d'une ligne
  • String s = bfreader.readLine();
  • while(s != null)
  • {
  • //affichage de la ligne lue
  • jta.append(s+"\n");
  • //lire une nouvelle ligne
  • s = bfreader.readLine();
  • }
  • //fermeture du tampon
  • bfreader.close();
  • sauvé = false;
  • }
  • catch(Exception e)
  • {
  • System.err.println("ba ya blême");
  • }
  • }
  • /**
  • *
  • * méthode d'écriture du fichier
  • *
  • * @param f fichier à écrire
  • *
  • */
  • public static void sauvegarde(File f)
  • {
  • try
  • {
  • //tampon d'écriture
  • BufferedWriter bfwriter = new BufferedWriter(new FileWriter(f));
  • /* écriture du texte (jta.getText()) à partir du rang 0
  • jusqu'à (jta.getText().length()), longueur du texte à copier */
  • bfwriter.write(jta.getText(), 0, jta.getText().length());
  • //fermeture du tampon d'écriture
  • bfwriter.close();
  • sauvé = true;
  • }
  • catch(Exception e)
  • {
  • System.err.println("ba ya blême");
  • }
  • }
  • /**
  • *
  • * méthode principale
  • *
  • */
  • public static void main(String[] args)
  • {
  • //création de la fenêtre d'affichage du n0tepad
  • frame = new JFrame(nomFenetre);
  • frame.setResizable(true);
  • //création du n0tepad
  • N0tepad essai = new N0tepad();
  • //ajout du n0tepad à la fenêtre
  • frame.getContentPane().add(essai);
  • //ajout d'un auditeur de fermeture de la fenêtre
  • frame.addWindowListener(new WindowAdapter()
  • {
  • public void windowClosing(WindowEvent e)
  • {
  • if ((file != null) && (!sauvé))
  • {
  • int saveOrNot = JOptionPane.showConfirmDialog(new JFrame(), "Quitter sans sauvegarder?", "Quitter", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, quit);
  • if(saveOrNot == JOptionPane.YES_OPTION) System.exit(0);
  • if(saveOrNot == JOptionPane.NO_OPTION)
  • {
  • int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
  • if(choix == fc.APPROVE_OPTION)
  • {
  • File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
  • sauvegarde(fichier);
  • }
  • frame.repaint();
  • System.exit(0);
  • }
  • if(saveOrNot == JOptionPane.CANCEL_OPTION) ;
  • }
  • else System.exit(0);
  • }
  • });
  • /**quitter**/
  • jmi5.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • if ((file != null) && (!sauvé))
  • {
  • int saveOrNot = JOptionPane.showConfirmDialog(new JFrame(), "Quitter sans sauvegarder?", "Quitter", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, quit);
  • if(saveOrNot == JOptionPane.YES_OPTION) System.exit(0);
  • if(saveOrNot == JOptionPane.NO_OPTION)
  • {
  • int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
  • if(choix == fc.APPROVE_OPTION)
  • {
  • File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
  • sauvegarde(fichier);
  • }
  • frame.repaint();
  • System.exit(0);
  • }
  • if(saveOrNot == JOptionPane.CANCEL_OPTION) ;
  • }
  • else System.exit(0);
  • }
  • });
  • //affichage de la fenêtre et donc du n0tepad
  • frame.pack();
  • frame.setVisible(true);
  • }
  • }
  • ____________________________________________________________________________
  • ____________________________________________________________________________
  • import java.awt.*;
  • import java.awt.event.*;
  • import javax.swing.*;
  • import java.util.*;
  • import java.io.*;
  • public class Recherche
  • {
  • JFrame frame;
  • JPanel pannoRech;
  • JPanel inter2;
  • JLabel labRech;
  • JTextField jtf;
  • JPanel boutons;
  • JButton ok;
  • JButton annuler;
  • JButton visu;
  • JList resultat;
  • JScrollPane scrollRech;
  • Vector res;
  • //Vector dep = new Vector();
  • //Vector arr = new Vector();
  • File fichier;
  • //int depart;
  • //int arrivee;
  • BufferedReader bfr;
  • int numero = 0;
  • public Recherche(File f)
  • {
  • fichier = f;
  • frame = new JFrame("Rechercher...");
  • frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
  • frame.setResizable(false);
  • frame.setLocation(300, 150);
  • pannoRech = new JPanel(new BorderLayout(5, 5));
  • inter2 = new JPanel(new FlowLayout());
  • labRech = new JLabel("Rechercher : ");
  • jtf = new JTextField(20);
  • boutons = new JPanel(new GridLayout(3, 1, 10, 5));
  • ok = new JButton("Ok");
  • annuler = new JButton("Annuler");
  • visu = new JButton("Visualiser");
  • visu.setEnabled(false);
  • res = new Vector();
  • resultat = new JList(res);
  • scrollRech = new JScrollPane(resultat);
  • inter2.add(labRech);
  • inter2.add(jtf);
  • boutons.add(ok);
  • boutons.add(annuler);
  • boutons.add(visu);
  • pannoRech.add(inter2, BorderLayout.CENTER);
  • pannoRech.add(boutons, BorderLayout.EAST);
  • frame.getContentPane().setLayout(new BorderLayout(5, 5));
  • frame.getContentPane().add(pannoRech, BorderLayout.NORTH);
  • frame.getContentPane().add(scrollRech, BorderLayout.CENTER);
  • frame.pack();
  • frame.setVisible(true);
  • annuler.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • frame.setVisible(false);
  • }
  • });
  • visu.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • //String rechInter = (String)resultat.getSelectedValue();
  • //StringTokenizer tok = new StringTokenizer(rechInter, ",");
  • //N0tepad.jta.select(Integer.parseInt(tok.nextToken()), Integer.parseInt(tok.nextToken(" ").substring(1)));
  • //N0tepad.jta.select(Integer.parseInt((String)dep.get(place)), Integer.parseInt((String)arr.get(place)));
  • //place += 1;
  • }
  • });
  • ok.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • res.removeAllElements();
  • numero = 0;
  • resultat.updateUI();
  • try
  • {
  • if(!jtf.getText().equals("")) rechercherUneChaine(jtf.getText(), fichier);
  • }
  • catch(FileNotFoundException fnfe)
  • {
  • System.err.print("filenotfound prob !!");
  • }
  • catch(IOException ioe)
  • {
  • System.err.print("io prob !!");
  • }
  • }
  • });
  • jtf.addActionListener(new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • res.removeAllElements();
  • numero = 0;
  • resultat.updateUI();
  • try
  • {
  • if(!jtf.getText().equals("")) rechercherUneChaine(jtf.getText(), fichier);
  • }
  • catch(FileNotFoundException fnfe)
  • {
  • System.err.print("filenotfound prob !!");
  • }
  • catch(IOException ioe)
  • {
  • System.err.print("io prob !!");
  • }
  • }
  • });
  • }
  • public void rechercherUneChaine(String s, File f) throws IOException, FileNotFoundException
  • {
  • frame.setTitle("Recherche de \" "+s+" \"");
  • bfr = new BufferedReader(new FileReader(f));
  • String ligne = bfr.readLine();
  • int index;
  • try
  • {
  • while( ligne != "" )
  • {
  • index = ligne.indexOf(s);
  • numero += 1;
  • if(index != -1)
  • {
  • res.addElement(numero+","+index+" : "+ligne);
  • }
  • ligne = bfr.readLine();
  • }
  • }
  • catch(NullPointerException npe) {}
  • jtf.selectAll();
  • jtf.setText("");
  • if (!res.isEmpty()) visu.setEnabled(true);
  • else visu.setEnabled(false);
  • resultat.updateUI();
  • boutons.updateUI();
  • }
  • }
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.filechooser.*;

/**
 * Titre : N0tepad
 * Description : éditeur de texte
 * Copyright :    Copyright n0strat0un(c) 2002
 * Société :  wesh wesh la nôtre !!
 * @author : n0stra & t0un
 * @version 1.1
 */

public class N0tepad extends JPanel
{
  static JFrame frame;
  static JTextArea jta;
  static JFileChooser fc;
  static File file;
  JMenuBar jmb;
  JMenu jm1;
  JMenu jm2;
  JMenu jm3;
  JMenu jm4;
  static JMenuItem jmi5;
  JMenuItem jmi1;
  JMenuItem jmi2;
  JMenuItem jmi3;
  JMenuItem jmi4;
  JMenuItem jmi6;
  JMenuItem jmi7;
  JMenuItem sjm1;
  JMenuItem sjm2;
  JCheckBoxMenuItem jmi8;
  JMenuItem jmi9;
  JMenuItem jmi10;
  JMenuItem jmi11;
  JMenuItem jmi12;
  //JCheckBoxMenuItem jmi13;
  String aRecherché;
  static String nomFenetre = "Sans Titre - N0tepad 1.1";
  final static String docHTML = new String("<html>\n<head>\n<title>  </title>\n<meta name=\"author\" content=\"  \">\n<meta name=\"description\" content=\"  \">\n<meta name=\"language\" content=\"FR\">\n<meta name=\"copyright\" content=\"  \">\n<meta http-equiv=\"reply-to\" content=\"  \">\n</head>\n\n<body background=\"  \" bgcolor=\"black\" link=\"gray\" vlink=\"gray\" alink=\"darkgray\" text=\"darkgray\">\n\n\n</body>\n</html>");
  Icon nouvo = new ImageIcon("icons/new.gif");
  Icon open = new ImageIcon("icons/open.gif");
  Icon save = new ImageIcon("icons/save.gif");
  static Icon quit = new ImageIcon("icons/fee.gif");
  static boolean sauvé = false;
  //static JCheckBoxMenuItem[] tab_fich_recents = new JCheckBoxMenuItem[5];
  //static int index_tab = 0;

  /**
   *
   * constructeur de n0tepad
   *
   */
  public N0tepad()
  {
    //création de la barre de menus
    jmb = new JMenuBar();
    jm1 = new JMenu("Fichier");
    jm3 = new JMenu("Edition");
    jm4 = new JMenu("Recherche");
    jm2 = new JMenu("?");

    jmi1 = new JMenu("Nouveau");
    sjm1 = new JMenuItem("Document texte", nouvo);
    sjm2 = new JMenuItem("Document HTML", nouvo);
    jmi2 = new JMenuItem("Ouvrir..", open);
    jmi3 = new JMenuItem("Sauvegarder", save);
    jmi4 = new JMenuItem("Sauvegarder sous..", save);
    jmi5 = new JMenuItem("Quitter");

    jmi6 = new JMenuItem("A propos..");

    jmi7 = new JMenuItem("Sélectionner tout");
    jmi10 = new JMenuItem("Copier");
    jmi11 = new JMenuItem("Couper");
    jmi12 = new JMenuItem("Coller");
    jmi8 = new JCheckBoxMenuItem("Retour à la ligne automatique");

    jmi9 = new JMenuItem("Rechercher..");

    jmi1.add(sjm1);
    jmi1.add(sjm2);

    jmb.add(jm1);
    jmb.add(jm3);
    jmb.add(jm4);
    jmb.add(jm2);

    jm1.add(jmi1);
    jm1.add(jmi2);
    jm1.add(jmi3);
    jm1.add(jmi4);
    jm1.addSeparator();
    jm1.add(jmi5);
    //jm1.addSeparator();
    //jm1.add(jmi13);

    jm2.add(jmi6);

    jm3.add(jmi10);
    jm3.add(jmi11);
    jm3.add(jmi12);
    jm3.addSeparator();
    jm3.add(jmi7);
    jm3.addSeparator();
    jm3.add(jmi8);

    jm4.add(jmi9);

    //initialisation de la boite d'ouverture
    fc = new JFileChooser();

    this.setLayout(new BorderLayout(5, 5));

    //création de la zone d'affichage de texte
    jta = new JTextArea(30, 60);
    jta.setEditable(true);
    //création du panneau "ajustable"
    JScrollPane jsp = new JScrollPane(jta);
    jsp.setBorder(BorderFactory.createLineBorder(Color.darkGray, 3));
    //ajout d'auditeurs aux boutons
/**Sélectionner tout**/
    jmi7.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jta.selectAll();
      }
    });
/**retour à la ligne auto**/
    jmi8.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        if (jmi8.getState() == true) jta.setLineWrap(true);
        else jta.setLineWrap(false);
      }
    });
/**nouveau document texte**/
    sjm1.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jta.selectAll();
        jta.replaceSelection("");
        file = new File("sanstitre.txt");
        String nomFrame = nomFenetre;
        frame.setTitle(nomFrame);
        frame.repaint();
        sauvé = false;
      }
    });
/**nouveau document HTML**/
    sjm2.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jta.selectAll();
        jta.replaceSelection(docHTML);
        file = new File("sanstitre.html");
        String nomFrame = nomFenetre;
        frame.setTitle(nomFrame);
        frame.repaint();
        sauvé = false;
      }
    });
/**ouverture**/
    jmi2.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        int choix = fc.showOpenDialog(frame); //affichage d'une fenêtre "d'ouverture"
        if(choix == fc.APPROVE_OPTION)
        {
          file = fc.getSelectedFile(); //récupère le fichier sélectionné
          ouverture(file);
          String nomFrame = file.getName()+" - N0tepad 1.1";
          frame.setTitle(nomFrame);
          /*if(index_tab == 5)
          {
            index_tab = 0;
            tab_fich_recents[index_tab] = new JCheckBoxMenuItem(file.getName());
            jmi13 = tab_fich_recents[index_tab];
            /**fichiers recents**/
            /*jmi13.addActionListener(new ActionListener()
            {
              public void actionPerformed(ActionEvent e)
              {
                if(jmi13.isSelected())
                {
                  File fichier = new File(jmi13.getName());
                  ouverture(fichier);
                }
              }
            });
            index_tab += 1;
            jm1.add(jmi13);
          }
          else
          {
            tab_fich_recents[index_tab] = new JCheckBoxMenuItem(file.getName());
            jmi13 = tab_fich_recents[index_tab];
            /**fichiers recents**/
            /*jmi13.addActionListener(new ActionListener()
            {
              public void actionPerformed(ActionEvent e)
              {
                if(jmi13.getState() == true)
                {
                  File fichier = new File(jmi13.getText());
                  ouverture(fichier);
                }
              }
            });
            index_tab += 1;
            jm1.add(jmi13);
          }*/
        }
        frame.repaint();
      }
    });
/**copier**/
    jmi10.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jta.copy();
        frame.repaint();
      }
    });
/**couper**/
    jmi11.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jta.cut();
        frame.repaint();
      }
    });
/**coller**/
    jmi12.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        jta.paste();
        frame.repaint();
      }
    });
/**sauvegarder**/
    jmi3.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        if (file == null)
        {
          int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
          if(choix == fc.APPROVE_OPTION)
          {
            File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
            sauvegarde(fichier);
          }
        }
        else sauvegarde(file);
        frame.repaint();
      }
    });
/**sauvegarder sous**/
    jmi4.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
        if(choix == fc.APPROVE_OPTION)
        {
          File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
          sauvegarde(fichier);
        }
        frame.repaint();
      }
    });
/**à propos**/
    jmi6.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        JOptionPane.showMessageDialog(null, "N0tepad 1.1\nEditeur de texte en Java\n\nversion 1.1", "A propos de N0tepad 1.1", -1);
      }
    });
/**rechercher**/
    jmi9.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        if(file != null)
        {
          Recherche recherche = new Recherche(file);
        }
      }
    });

    //mise en place des panneaux intermédiaires
    this.add(jsp, BorderLayout.CENTER);
    this.add(jmb, BorderLayout.NORTH);
  }

  /**
   *
   * méthode qui met en place les marges
   *
   * @return insets la valeur des marges(h, b, g, d)
   */
  public Insets getInsets()
  {
    return new Insets(5, 5, 5, 5);
  }

  /**
   *
   * méthode d'affichage du fichier à ouvrir
   *
   * @param f fichier à ouvrir
   *
   */
  public void ouverture(File f)
  {
    //efface la zone de texte
    jta.selectAll();
    jta.replaceSelection("");
    try
    {
      //tampon de lecture
      BufferedReader bfreader = new BufferedReader(new FileReader(f));
      //lecture d'une ligne
      String s = bfreader.readLine();
      while(s != null)
      {
        //affichage de la ligne lue
        jta.append(s+"\n");
        //lire une nouvelle ligne
        s = bfreader.readLine();
      }
      //fermeture du tampon
      bfreader.close();
      sauvé = false;
    }
    catch(Exception e)
    {
      System.err.println("ba ya blême");
    }
  }

  /**
   *
   * méthode d'écriture du fichier
   *
   * @param f fichier à écrire
   *
   */
  public static void sauvegarde(File f)
  {
    try
    {
      //tampon d'écriture
      BufferedWriter bfwriter = new BufferedWriter(new FileWriter(f));
      /* écriture du texte (jta.getText()) à partir du rang 0
        jusqu'à (jta.getText().length()), longueur du texte à copier */
      bfwriter.write(jta.getText(), 0, jta.getText().length());
      //fermeture du tampon d'écriture
      bfwriter.close();
      sauvé = true;
    }
    catch(Exception e)
    {
      System.err.println("ba ya blême");
    }
 }

 /**
  *
  * méthode principale
  *
  */
  public static void main(String[] args)
  {
    //création de la fenêtre d'affichage du n0tepad
    frame = new JFrame(nomFenetre);
    frame.setResizable(true);
    //création du n0tepad
    N0tepad essai = new N0tepad();
    //ajout du n0tepad à la fenêtre
    frame.getContentPane().add(essai);
    //ajout d'un auditeur de fermeture de la fenêtre
    frame.addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent e)
      {
        if ((file != null) && (!sauvé))
        {
          int saveOrNot = JOptionPane.showConfirmDialog(new JFrame(), "Quitter sans sauvegarder?", "Quitter", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, quit);
          if(saveOrNot == JOptionPane.YES_OPTION) System.exit(0);
          if(saveOrNot == JOptionPane.NO_OPTION)
          {
            int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
            if(choix == fc.APPROVE_OPTION)
            {
              File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
              sauvegarde(fichier);
            }
            frame.repaint();
            System.exit(0);
          }
          if(saveOrNot == JOptionPane.CANCEL_OPTION) ;
        }
        else System.exit(0);
      }
    });
/**quitter**/
    jmi5.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        if ((file != null) && (!sauvé))
        {
          int saveOrNot = JOptionPane.showConfirmDialog(new JFrame(), "Quitter sans sauvegarder?", "Quitter", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, quit);
          if(saveOrNot == JOptionPane.YES_OPTION) System.exit(0);
          if(saveOrNot == JOptionPane.NO_OPTION)
          {
            int choix = fc.showSaveDialog(frame); //affichage d'une fenêtre "de fermeture"
            if(choix == fc.APPROVE_OPTION)
            {
              File fichier = fc.getSelectedFile(); //récupère le fichier sélectionné
              sauvegarde(fichier);
            }
            frame.repaint();
            System.exit(0);
          }
          if(saveOrNot == JOptionPane.CANCEL_OPTION) ;
        }
        else System.exit(0);
      }
    });
    //affichage de la fenêtre et donc du n0tepad
    frame.pack();
    frame.setVisible(true);
  }
}
____________________________________________________________________________
____________________________________________________________________________
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;

public class Recherche
{
  JFrame frame;
  JPanel pannoRech;
  JPanel inter2;
  JLabel labRech;
  JTextField jtf;
  JPanel boutons;
  JButton ok;
  JButton annuler;
  JButton visu;
  JList resultat;
  JScrollPane scrollRech;
  Vector res;
  //Vector dep = new Vector();
  //Vector arr = new Vector();
  File fichier;

  //int depart;
  //int arrivee;

  BufferedReader bfr;
  int numero = 0;

  public Recherche(File f)
  {
    fichier = f;
    frame = new JFrame("Rechercher...");
    frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    frame.setResizable(false);
    frame.setLocation(300, 150);
    pannoRech = new JPanel(new BorderLayout(5, 5));
    inter2 = new JPanel(new FlowLayout());
    labRech = new JLabel("Rechercher : ");
    jtf = new JTextField(20);
    boutons = new JPanel(new GridLayout(3, 1, 10, 5));
    ok = new JButton("Ok");
    annuler = new JButton("Annuler");
    visu = new JButton("Visualiser");
    visu.setEnabled(false);
    res = new Vector();
    resultat = new JList(res);
    scrollRech = new JScrollPane(resultat);

    inter2.add(labRech);
    inter2.add(jtf);
    boutons.add(ok);
    boutons.add(annuler);
    boutons.add(visu);
    pannoRech.add(inter2, BorderLayout.CENTER);
    pannoRech.add(boutons, BorderLayout.EAST);
    frame.getContentPane().setLayout(new BorderLayout(5, 5));
    frame.getContentPane().add(pannoRech, BorderLayout.NORTH);
    frame.getContentPane().add(scrollRech, BorderLayout.CENTER);
    frame.pack();
    frame.setVisible(true);

    annuler.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        frame.setVisible(false);
      }
    });

    visu.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        //String rechInter = (String)resultat.getSelectedValue();
        //StringTokenizer tok = new StringTokenizer(rechInter, ",");
        //N0tepad.jta.select(Integer.parseInt(tok.nextToken()), Integer.parseInt(tok.nextToken(" ").substring(1)));
        //N0tepad.jta.select(Integer.parseInt((String)dep.get(place)), Integer.parseInt((String)arr.get(place)));
        //place += 1;
      }
    });

    ok.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        res.removeAllElements();
        numero = 0;
        resultat.updateUI();
        try
        {
          if(!jtf.getText().equals("")) rechercherUneChaine(jtf.getText(), fichier);
        }
        catch(FileNotFoundException fnfe)
        {
          System.err.print("filenotfound prob !!");
        }
        catch(IOException ioe)
        {
          System.err.print("io prob !!");
        }
      }
    });

    jtf.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        res.removeAllElements();
        numero = 0;
        resultat.updateUI();
        try
        {
          if(!jtf.getText().equals("")) rechercherUneChaine(jtf.getText(), fichier);
        }
        catch(FileNotFoundException fnfe)
        {
          System.err.print("filenotfound prob !!");
        }
        catch(IOException ioe)
        {
          System.err.print("io prob !!");
        }
      }
    });
  }

  public void rechercherUneChaine(String s, File f) throws IOException, FileNotFoundException
  {
    frame.setTitle("Recherche de \" "+s+" \"");
    bfr = new BufferedReader(new FileReader(f));
    String ligne = bfr.readLine();
    int index;
    try
    {
      while( ligne != "" )
      {
        index = ligne.indexOf(s);
        numero += 1;
        if(index != -1)
        {
          res.addElement(numero+","+index+" : "+ligne);
        }
        ligne = bfr.readLine();
      }
    }
    catch(NullPointerException npe) {}
    jtf.selectAll();
    jtf.setText("");
    if (!res.isEmpty()) visu.setEnabled(true);
    else visu.setEnabled(false);
    resultat.updateUI();
    boutons.updateUI();
  }
}

 Conclusion

pas de mises a jour prévue...si vous rencontrez des problèmes, parce qu'il y en a...vous pouvez me contacter...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec une capture VISUALISEUR D'ENTÊTE HTTP

 Sources de la même categorie

JLABELIMAGE : GESTION D'UNE IMAGE EN ARRIÈRE-PLAN par bob22mael
Source avec Zip SÉLECTEUR DE DATES MULTIPLES, ORIGINE UHRAND par William44290
RECHERCHE D'ELEMENTS DANS UNE JLIST par Ze_Hulk
Source avec Zip Source avec une capture PROGICIEL DE LOCATION DE VOITURE par SoftDeath
Source avec Zip Source avec une capture CALENDRIER ET HORLOGE AVEC LA LIBRAIRIE ORG.JDESKTOP.SWINGX par Cornellus1985

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BLOC-NOTES JAVA SIMULANT LE NOTEPAD WINDOWS XP par alexis779
Source avec Zip Source avec une capture BLOC NOTES POUR TELEPHONE PORTABLE par fmazoue
Source avec Zip Source avec une capture EDITEUR DE TEXTE COMPLET (WORDPAD LIKE) EN J++ AVEC PABLO par TheSaib
BLOCNOTE TEXTAREA par jchiaram
Source avec Zip EDITEUR DE TEXTE par nicolaserny

Commentaires et avis

Commentaire de n0stra le 27/11/2002 20:35:25

jai oublié...les 3 images sont en fichier joint...désolé

Commentaire de thelover2fr le 23/04/2003 00:53:29

t'as pas fait beaucoup de travail
parceque ton editeur n'a pas les autres fonctionnalites d'un editeur de textes come l'ajustement du texte ou la mise en forme...

Commentaire de n0stra le 23/04/2003 08:15:54

"je suis nouveau en java et je souhaite etre un grand programmeur chez MICROSOFT", oula!! ca ca la fout mal...sinon cune application similaire au bloc note de windows puisk tu aimes mikrosopht et a moin ke g une version dépassée ya pa de mise en forme ou d'ajustement du texte..maintenant ici c open source (a la différence de certaines boites!!!) et donc tu peu le reprendre et rajouter ske tu veu, mettre ton nom et le mettre sur le site, kom ca yen aura kom i faut !! nan??

Commentaire de eldered le 25/11/2003 00:33:53

C nikel, exactement sk'il me fallait, c du bon boulot, lisible et compréhensible par tout le monde !

++

Commentaire de Tekkeitser le 27/11/2003 09:54:06

j'te conseille de pas être programmeur pour Mico$oft mais plutôt de diffuser gratuitement tes progs parce ke sinon tu vas te faire jeter des pierres dans la rue!!!!
Vive l'open source!
Rejoint la communauté!!!

Commentaire de pgassie le 27/12/2003 02:37:01

thelover2fr écrit "t'as pas fait beaucoup de travail ".
Je ne suis pas du tout d'accord.
C'est un bon exemple de programmation structurée, de programmation objet.
Je ne vois pas l'intérêt de refaire un Word ou un Open Office en Java. Ce n'est pas un bon langage pour cela.
C'est vrai que Java sait tout faire le bougre, mais justement, personnellement, je suis à la recherche de la documentation "deux-lignes" .
Personne de ma connaissance n'est une bête en RMI et Corba, sans caler sur les servlets et le JSP (ou l'inverse).
Oui, vive la documentation "deux-lignes" qui débloque, qui évite de relire des pages et des pages de doc. Je ne suis donc pas trop d'accord avec la notation "débutant -expert". La complexité d'un programme ne tient pas dans sa longueur.
Un exemple, tout le monde connait E= mc² (zut, ça fait pas deux lignes) qui a lu et compris la démonstration? (Moi je l'ai lu, na na nère ! )
Le père Adam en étant chassé du Paradis n'avait pas dans sa valise d'interface graphique, de programmation objet et de souris. Ceux qui sont nés avec trouvent cela normal, mais que de recherches avant d'en arriver là.
En plus, il n'y a pas de fautes d'orthographe, cela repose..

Après ce couplet philosophique, je voudrais faire quelques remarques à ce cher et brave nOstra. Je n'aime pas mais alors pas du tout les noms de variables en jmi1 à jmi12.
Dans le constructeur après avoir fait " this.add(jmb, BorderLayout.NORTH);" quand te reserviras-tu de jmb?
De même pour les jmi3 et autres après leur avoir collé un écouteur, ils sont bons pour le ramasse-miettes.
Je suggère de glisser les déclarations de type JMenu dans le constructeur de manière à ce qu'ils soient broyés ensuite et d'utiliser "setJMenuBar(jmb)" dont l'équivavlent en BorderLayout n'est pas NORTH, mais PAGE_START.
Amitiés.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

[Swing] Taille header dans un JTable (mettre le texte du header sur deux ligne) [ par saifer ] Salut à tous !J'ai un problème au niveau du header de mon JTable, je voudrais que le texte de header soit affiché sur deux ou trois lignes, je m'expli éditeur de texte évolué [ par predateuraud ] Bonjour,je programme actuellement en java une sorte d'&#233;diteur de texte un peu comme&nbsp; word mais &#224; ma sauce.&nbsp;La zone de texte est en Aide à un nouveau en java-objet swing [ par douuuud ] Bonjour Je commence &#224; programmer en java et mon but est le suivant : avoir un bouton dans une fenetre qui me permet de creer un rectangle a un e je cherche éditeur pour JSP [ par none2502 ] bonjour je cherche un &#233;diteur autre que netbeans pour cr&#233;e une applcation web a base de JSP merci Problème bizarre !!!!!!!!!? [ par kaninama ] Bonjour tout le monde, J&#146;ais un pb un peu bizarre que je vous explique, Je parse un document XML avec JDOM la il n y a aucun pb, je manipule Problème bizarre !!!!!!!!!? [ par kaninama ] Bonjour tout le monde, J&#146;ais un pb un peu bizarre que je vous explique, Je parse un document XML avec JDOM la il n y a aucun pb, je manipule Comment lire un fichier texte dans un jar ? [ par thenaoh ] Bonjour à tous !Dans mon appli, je fais régulièrement des lectures dans des fichiers texte, comme l'illustre l'exemple ci-dessous :BufferedReader inpu [J2EE-Texte] WordArt ou mise en forme de texte [ par DARKSIDIOUS ] Bonjour les amis !Je suis en train de faire un logiciel de création d'affiches publicitaires, et je butte sur une difficulté : comment créer des titre Forcé la position d'un élément swing [ par TheSquad ] Bonjour a tous, étant plus habitué aux interfaces créer par Cocoa, il m'est difficile d'admettre que ce ne soit pas moi qui décide la position et la t Conversion HTML -> Texte [ par asgarden ] Bonjour à tous,Je pensais vraiment trouver rapidement la réponse à mon problème dans les forums, car cette question a dû être posé des centaines de fo


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales