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
Aide à un nouveau en java-objet swing [ par douuuud ]
Bonjour Je commence à 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 éditeur autre que netbeans pour crée une applcation web a base de JSP merci
Problème bizarre !!!!!!!!!? [ par kaninama ]
Bonjour tout le monde, J’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’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
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Hero
Entre 550€ et 550€
|