[Java] insérer les données dans un tableau

Fermé
Utilisateur anonyme - Modifié par mamiemando le 29/06/2011 à 13:37
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 - 29 juin 2011 à 17:19
Bonjour,
SVP vous pouvez m'aider je dois réaliser un projet en java qui doit afficher des champs précis des lignes qui contiennent la valeur saisi par l'utilisateur dans un des 2 tableaux puisque mon interface contient 2 tableaux.
Donc il va m'afficher les champs qui ont cette valeur dans le tableau 1 si la valeur du IDT= la valeur du IDTc qui ne sont pas dans la meme ligne.
Par exemple en considérant ces données du fichier :
IDF PD PS NOM IDT IDTc champ7
M086A 562A M04A 1059 0000058 0000147 51158
M086M 562A M04A 1030 0000259 0000014 51149
M086A 567D M04A 1015 0000042 0000058 51415
M086A 562A M04A 1005 0000128 0000147 51146
Si l'utilisateur a saisi M086A
Je dois avoir dans le tableau 1 les lignes qui contiennent la valeur M086A à condition d'avoir IDT=IDTc
M086A 562A M04A 1059 0000058 0000147 51158
M086A 567D M04A 1015 0000042 0000058 51415
Je dois avoir dans le tableau 2 les lignes qui contiennent la valeur M086A
M086A 562A M04A 1005 0000128 0000147 51146
SVP j'ai besoin que vous m'aidez à insérer les champs dans un des 2 tableaux suivant la condition
Voila le code que j'ai fait :
import java.awt.BorderLayout;


import java.awt.Color;
import java.awt.Container;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;


public class jdid extends JFrame implements ActionListener {

//afficher un message à l'écran
private JLabel jl=new JLabel("Code:");
//créer une liste de choix déroulante
private JComboBox combo = new JComboBox();
//créer une zone de texte contenant 40 caractères
private JTextField jt=new JTextField(40);

//créer un bouton
private JButton jb=new JButton("OK");

//Les titres des colonnes du tableau1
String title1[] = {"PS", "PD", "IDF","IDT","IDTc","NOM"};
//Les données du tableau1
Object[][] data1 ={};
JTable tableau1 = new JTable(data1, title1);

//Les titres des colonnes du tableau2
String title2[] = {"PS", "PD", "IDF","IDT"};
//Les données du tableau2
Object[][] data2 ={};
private DefaultTableModel model2;
private JTable tableau2;
private DefaultTableModel model1;


public jdid(){
//créer le conteneur cp
Container cp=this.getContentPane();
//créer le paneau jp1
JPanel jp1=new JPanel();
//définir le contenu de la liste de choix déroulante
combo.addItem("PS");
combo.addItem("PD");
combo.addItem("IDF");
combo.addItem("IDT");
combo.addItem("IDTc");
combo.addItem("NOM");
//ajouter jl, combo, jt et jb au paneau jp1
jp1.add(jl);
jp1.add(combo);
jp1.add(jt);
jp1.add(jb);
//ajouter le tableau tableau1 et tableau2 au contentPane dans un scroll
//Sinon les titres des colonnes ne s'afficheront pas ! !
jp1.add(new JScrollPane(tableau1));

model1=new DefaultTableModel(data1, title1);
tableau1 = new JTable(model1);



model2=new DefaultTableModel(data2, title2);
tableau2 = new JTable(model2);



jp1.add(new JScrollPane(tableau2));
//ajouter le paneau jp1 au conteneur cp
cp.add(jp1);

//définir une police d'écriture
Font police = new Font("Tahoma", Font.BOLD, 16 );
//appliquer celle-ci à jl
jl.setFont(police);
//changer la couleur de la police
jl.setForeground(Color.white);
//définir les couleurs de l'arrière plan du paneau
jp1.setBackground(Color.green);
//définir le titre de la fentre
this.setTitle("Fenetre");
//définir la dimension de la fenetre
this.setSize(300,300);
//
this.setVisible(true);
//quitter l'application
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//exécuter la méthode ActionListonner en cliquant sur le bouton
jb.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jb){
//ouvrir le dossier CFT
File f=new File("c:/CFT");
//lister les fichiers appartenant au dossier CFT
//un tableau contenu de chaine de caractère qui affiche les noms des fichiers du dossier CFT
String[] contenu=f.list();
for(int i=0;i<contenu.length;i++){
System.out.println(contenu[i]);

////

lireFichierRech(contenu[i]);



//ouvrir chaque fichier du dossier CFT
File f2=new File("c:/CFT/"+contenu[i]);
//lire un fichier ligne par ligne
FileReader fr = null;
try {
fr = new FileReader(f2);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedReader br=new BufferedReader(fr);
String s;
// la boucle se termine quand la méthode retourne la valeur null
try {
while((s=br.readLine())!=null){
//extraire les sous-chaines
//un tableau tab de chaine de caractère
String[] tab=s.split(" ");

}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}





int rechercher__String_String (String S,String s){
// First occurrence
int index = S.indexOf(s); // 2
return index;
/// si index = -1 ===> introuvable

}




private void lireFichierRech( String Fichier){

tableau2 = new JTable(model2);

String CC=jt.getText(); // le texte saisi
String [] tab=new String [500000];
String NomFichier = "C:/CFT/"+Fichier;
try{
BufferedReader in = new BufferedReader(new FileReader(NomFichier));
String line;
int i = 0;
while ((line = in.readLine()) != null) {
tab[i] = (line.trim());

if ( rechercher__String_String(tab[i],CC)!=-1)
{
System.out.println(CC+" est dans "+tab[i]+ " du fichier C:/CFT/"+Fichier);
model2.addRow(new Object []{CC,tab[i]});
setVisible(true);
System.out.println(i+" tab[i] "+tab[i]);
}




i++;
}
in.close();
}
catch(Exception e){
e.printStackTrace();

}
}



public static void main(String[] args) {
new jdid();



}

}
A voir également:

2 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
29 juin 2011 à 14:52
Tu aurais du mettre ce message à la suite des autres (cf. afficher les données dans un tableau)
Avec le code que je t'ai déjà fourni, tu peux déjà récupérer les données qui contiennent M086A dans un tableau, il te suffit alors de comparer les champs IDT et IDTC pour savoir où les placer.
0
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
29 juin 2011 à 17:19
0