Accueil > > > N0TEPAD EN JAVA
N0TEPAD EN JAVA
Information sur la source
Description
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...
Sources de la même categorie
Commentaires et avis
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'éditeur de texte un peu comme word mais à ma sauce. La zone de texte est en
Glisser un fichier .txt vers un éditeur de texte fait en java [ par zakaria3220 ]
Salut, j'ai réalisé un éditeur de texte comme bloc-note de windows. Le problème que j'ai trouvé c'est quand je glisse un fichier .txt vers mon applica
Creation d'applet java [ par falfoulmec ]
Bonjour Je souhaiterais savoir s'il est possible d'intégrer un éditeur de jeux dans une page web,j'explique un peu plus je veux permettre aux visite
analyse linguistique d'un texte français [ par oumaimaouma ]
bonjour tout le monde svp je veux un code source en Java qui permet de faire la tokenisation d'un texte en mots ensuite l'élimination des mots vides j
mettre un texte en gras italique... [ par mbareksarroura ]
je veut faire une applet java afin d’éviter les éternelles balise que l'on peut voir sur de forums ou autre site qui nécessite de la saisie de t
mise en forme d'un texte [ par mbareksarroura ]
salut, svp vous pouvez m'aider [^^sad1] je voudrais faire un mise en forme de texte c'est à dire je voudrais que mes clients puissent écrire du texte
parseur pour un texte [ par sabine06 ]
bonjour je veux crée un parseur en java qui va m'aider un extraire des informations pour les affiché en fichier xml y'a t'il quelqu'un qui peut m'aide
parser de texte [ par sabine06 ]
bonjour je suis entrain de travaillé sur un parseur de texte en java j'ai declaré la racine le probleme c'est que je ne sais comment la fermé je veux
texte défilant [ par elhon ]
slt, j'essaie de créer un texte défilant avec JLabel d'une manière assez simple.Mais le problème est que ma fenêtre n'affiche que la dernière chaine.
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
RE : CODE GéNéRé RE : CODE GéNéRé par Julien39
Cliquez pour lire la suite par Julien39 RE : CODE GéNéRé RE : CODE GéNéRé par Julien39
Cliquez pour lire la suite par Julien39
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|