begin process at 2010 03 20 09:42:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

rechercher une sous chaine ds une chaine


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

rechercher une sous chaine ds une chaine

samedi 24 janvier 2009 à 17:01:25 | rechercher une sous chaine ds une chaine

id000

salut à tous ,
je voudrai realiser une application qui permet de rechercher une sous chaine (ds un jtextfield) dans une chaine (ds un jtextarea) et chaque fois qu'il la trouve il la selectionne
le code source :
package rechercher_remplacer;

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class Cadre1
    extends JFrame {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel1 = new JPanel();
  JPanel jPanel2 = new JPanel();
  JToolBar jToolBar1 = new JToolBar();
  GridLayout gridLayout1 = new GridLayout();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JTextField jTextField1 = new JTextField(18);
  JScrollPane jScrollPane1 = new JScrollPane();
  GridLayout gridLayout2 = new GridLayout();
  static JTextArea jTextArea1 = new JTextArea();

  public Cadre1() {
    try {
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      jbInit();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  /**
   * Initialisation du composant.
   *
   * @throws java.lang.Exception
   */
  private void jbInit() throws Exception {
    contentPane = (JPanel) getContentPane();
    contentPane.setLayout(borderLayout1);
    setSize(new Dimension(400, 300));
    setTitle("Rechercher/Remplacer");
    jPanel1.setLayout(gridLayout1);
    jButton1.setText("Rechercher");
    jButton1.addActionListener(new Cadre1_jButton1_actionAdapter(this));
    jButton2.setText("Remplacer");
    jButton2.addActionListener(new Cadre1_jButton2_actionAdapter(this));
    jPanel2.setLayout(gridLayout2);
    contentPane.add(jPanel1, java.awt.BorderLayout.NORTH);
    jPanel1.add(jToolBar1);
    jToolBar1.add(jButton1);
    jToolBar1.add(jTextField1);
    jToolBar1.add(jButton2);
    contentPane.add(jPanel2, java.awt.BorderLayout.CENTER);
    jPanel2.add(jScrollPane1);
    jScrollPane1.getViewport().add(jTextArea1);
  }

  public void jButton2_actionPerformed(ActionEvent e) {
  //methode de remplaçer
  }

  public void jButton1_actionPerformed(ActionEvent e) {
   Cadre2 c =new Cadre2();
   c.setSize(300,150);
   c.setLocation(300,150);
   c.setVisible(true);
  }
}

class Cadre1_jButton2_actionAdapter
    implements ActionListener {
  private Cadre1 adaptee;
  Cadre1_jButton2_actionAdapter(Cadre1 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButton2_actionPerformed(e);
  }
}

class Cadre1_jButton1_actionAdapter
    implements ActionListener {
  private Cadre1 adaptee;
  Cadre1_jButton1_actionAdapter(Cadre1 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}
la 2éme fenetre
package rechercher_remplacer;

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class Cadre2
    extends JFrame {
  GridLayout gridLayout1 = new GridLayout();
  JPanel jPanel1 = new JPanel();
  JPanel jPanel2 = new JPanel();
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel3 = new JPanel();
  JButton jButton1 = new JButton();
  JPanel jPanel4 = new JPanel();
  FlowLayout flowLayout1 = new FlowLayout();
  JLabel jLabel1 = new JLabel();
  static JTextField jTextField1 = new JTextField(17);
  GridLayout gridLayout2 = new GridLayout();
  JButton jButton2 = new JButton();
  public Cadre2() {
    try {
      jbInit();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    getContentPane().setLayout(gridLayout1);
    gridLayout1.setColumns(1);
    gridLayout1.setRows(2);
    jPanel1.setLayout(borderLayout1);
    jPanel1.setMinimumSize(new Dimension(0, 0));
    jButton1.setText("Rechercher");
    jButton1.addActionListener(new Cadre2_jButton1_actionAdapter(this));
    jPanel4.setLayout(flowLayout1);
    flowLayout1.setAlignment(FlowLayout.LEFT);
    jLabel1.setText("Texte à rechercher");
    jPanel3.setLayout(gridLayout2);
    gridLayout2.setColumns(1);
    gridLayout2.setRows(2);
    jButton2.setText("Remplacer");
    this.getContentPane().add(jPanel1);
    jPanel1.add(jPanel3, java.awt.BorderLayout.EAST);
    jPanel3.add(jButton1);
    jPanel3.add(jButton2);
    jPanel1.add(jPanel4, java.awt.BorderLayout.CENTER);
    jPanel4.add(jLabel1);
    jPanel4.add(jTextField1);
    this.getContentPane().add(jPanel2);
  }
  String textarea = Cadre1.jTextArea1.getText();
  int longue = textarea.length();
  String textfield = jTextField1.getText();
  int longtf = textarea.length();int l=0;boolean trouver=false;
  public void jButton1_actionPerformed(ActionEvent e) {
   while(l<longue)
   {if(textarea.charAt(l)==textfield.charAt(0))
     {if((textarea.substring(l,l+longtf)).equals(textfield))
       {
         Cadre1.jTextArea1.select(l,l+longtf);
         trouver=true;
         l=longtf;break;
       }
     }
     l++;
   }
   if (trouver=false){System.out.println("Non trouvé");
   }
  }
}

class Cadre2_jButton1_actionAdapter
    implements ActionListener {
  private Cadre2 adaptee;
  Cadre2_jButton1_actionAdapter(Cadre2 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}
les messages d'erreur qui s'affiche :
at java.lang.String.charAt(String.java:444)
 at rechercher_remplacer.Cadre2.jButton1_actionPerformed(Cadre2.java:73)
 at rechercher_remplacer.Cadre2_jButton1_actionAdapter.actionPerformed(Cadre2.java:96)

aidez mois svp   

samedi 24 janvier 2009 à 19:00:10 | Re : rechercher une sous chaine ds une chaine

chris081

Salut
String textarea = Cadre1.jTextArea1.getText();
int longue = textarea.length();
String textfield = jTextField1.getText();
int longtf = textarea.length();
int l=0;
boolean trouver=false;

public void jButton1_actionPerformed(ActionEvent e) {
while(l
if(textarea.charAt(l)==textfield.charAt(0)){
// java fonctionne en base 0, c'est a dire, qu'il
// commence a compter a partir de 0.
//
// ici, ce que tu écrit, c'est équivalent a
// String s = "abc"; // length -> 3 (de 0 inclus a 2 inclus)
// String t = "adefghijk"; // length - > 9( de 0 inclus a 8 inclus)
//
// Bon, ensuite, tu recupere une sous chaine de ta chaine
// d'origine (textarea.substring (l, l + longtf))
// Ce qui revient a (avec la longueur de mes 2 string ci-dessus)
// t.substring (s.length, s.length + t.length)
// en chiffres, ca donnes t.substring (3, 3 + 9)
//
// Donc, nous avons récupéré une sous-chaine de t
// dont le premier caractères de la sous-chaine est le
// 4e caractères de la chaine t, et qui a une longueur
// de 12 caractères, Soit fghijk (longueur:6 caractères).
// Il manque 6 caractères a quelque part.
//
// Ensuite, nous vérifions que notre chaine "fghijk "
// soit égale à s ("abc")
if((textarea.substring(l,l+longtf)).equals(textfield)){
Cadre1.jTextArea1.select(l,l+longtf);
trouver=true;
//
// ici, tu affectes la valeur de longtf (soit le nombre
// de caractères total de la plus longue chaine (jtextfield)
// a l. L'instruction suivant l'affectation de valeur à
// la variable l est un break. Ce break indique que tu
// dois sortir de la boucle. Cependant, la valeur
// de continuation que tu utilises pour la boucle
// est l < longue. Lorsque le break sera atteint,
// l aura la valeur de longtf (l=longtf) (longue
// et longtf pointent tout deux vers la même valeur.
// voit tes déclaration au début de la méthode)
//
l=longtf;
break;
}
}
l++;
}
if (trouver=false){System.out.println("Non trouvé");
}
}
Corrige les petit détails ci-dessus et essait a nouveau voir si ca va fonctionner.
chris081





Est-ce que les femmes pètent autant que les hommes ?
Oui. Cependant, les hommes semblent en tirer plus de gloire que les femmes.

Retrouvez l'intégrale ici
dimanche 25 janvier 2009 à 07:05:46 | Re : rechercher une sous chaine ds une chaine

danimo

Salut,

l = textarea.indexOf(textfield); // éviter l minuscule que l'on peut confondre avec 1


Si l > -1 : la sous chaine existe et,

Code :

int longtf = textfield.length(); // et non int longtf = textarea.length();

String souschaine = textarea.substring(l, l+longtf);

Cordialement,

Dan


Cette discussion est classée dans : java, add, cadre1, adaptee, jbutton1


Répondre à ce message

Sujets en rapport avec ce message

Imprimer un jTextField Centrer sur la page [ par jagoulard ] jagBonjour, je voudrai imprimer le contenue d'un jTextField centrer sur une feuille A5 mais je ne sais pas comment faire pour qu'il soit centrer ( gau probleme :'( [ par CHKDSK2K ] probleme quand je fait un programme java je dois donner le nom de class au programme ici ProgrammeJava.java oki ?import javax.swing.*;import java.awt. unreported IOException: je vois pas là [ par axi_axi_axi ] Donc c une petite erreur: je veut créer un fichier mais ça compile pas. Merci à la\les personne(s) qui vont me consacrer un peu de temps. voici l'erre charger un fichier au format 3DS [ par julienlll ] Salute, je suis en train d'écrire un programme java3D qui permet de visualiser des Modeles numeriques de terrain (MNT) (modèle 3d d'un terrain).J'ai r initialiser les items d'un combobox selon le choix d'un aiutre combobox [ par asetti ] Slt;Je fais une application qui contient plusieurs familles qui contiennent chacune plusieurs items qui contient des groupes qui contient des éléments Big probleme je penche dessus depuis 2 semaine [ par Skyffer3 ] Salut a tous alors voila j'ai un big big big prob ca fait 2 semaines ke j'ai pas la reponse.J'ai une application qui est invisible.C'est pour faire un probleme de calcul en JAVA [ par oceane751 ] bonjour à tous!!voila comme le dit le sujet, je rencontre un problee lorsque je veux faire l'addition du prix dun "melon" et celui dune "salade"en eff interface graphique java(awt) [ par chris5874 ] Bonjour à tous,je souhaiterai faire un programme realisant la conversion de nombres entiers en nombres hexadécimal.ceci est je pense une étape pour mo Problème de dessin qui s'efface [ par Reeper ] Bonjour à tous, j'apprend le java pendant mes études et j'ai un petit programme a faire qui réalise divers opérations dont une concerne la création d' Erreur à l'exécution d'un applet [ par Warwick ] BonjourJe vous présente les erreurs que j'ai lors de l'exécution de mon applet java.lang.NullPointerException at java.awt.Container.addImpl(Con


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,562 sec (4)

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