Problème de recherche avec java

Fermé
mirakanto - 23 mars 2012 à 11:02
 mirakanto - 23 mars 2012 à 11:41
Bonjour,

J'ai une application avec JList et JTable et j'utilise aussi DefaultTableModel. j'ai créer ensuite un JTextField pour faire une recherche rapide dans la liste affichée! le programme n'a pas de bug mais il n'effectue pas la recherche!

Est-ce que quelqu'un a une idée?

Merci d'avance pour votre réponse!

Cordialement mirakanto
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
23 mars 2012 à 11:07
Il faudrait qu'on ai ton code pour te dire où est l'erreur...
0
Merci KX! voici mon code:

package Main;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.List;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
//import javax.swing.table.TableModel;

import Database.ConnectionManager;
import Datasource.Personne;
import Pattern.IObserver;
import Pattern.TableModel;
import lwcanvas.LWCanvas;
import lwcanvas.components.LWImageFrame;
import lwcanvas.util.LWLookNFeelManager;
import lwutil.LWResourceLoader;

public class Frame extends JFrame implements IObserver{

private static final long serialVersionUID = 1L;

private JScrollPane Scrollpane;
private JTable tblPersonne;
//private List<Personne> listPersonne;
private JList listPersonne;
private TableModel tblModelPersonne;
private DefaultListModel lstModel;
private JButton btnAjouter;
private JButton btnModifier;
private JButton btnSupprimer;
private JButton btnQuitter;
private JLabel lblNom, lblPrenom, lblIM;
private JTextField txtNom, txtPrenom, txtIM;
private LWCanvas canvas;
private LWImageFrame logo, logo1;

public Frame(){
initComponent();
charger();
}

private void initComponent() {
setSize(1320, 655);
setTitle("LISTE DES PERSONNELS DU MINISTERE DE LA COMMUNICATION");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLocationRelativeTo(null);

getContentPane().setLayout(new BorderLayout());

canvas = new LWCanvas();
getContentPane().add(canvas);
canvas.setLayout(null);

LWLookNFeelManager.getInstance().makeNimbusLookNFeel();

Image img = LWResourceLoader.getInstance().loadImage("img/Repoblika.jpg");
logo = new LWImageFrame(img, 520, 0, 212, 82);
canvas.addShape(logo);

Image img1 = LWResourceLoader.getInstance().loadImage("img/mincom.jpg");
logo1 = new LWImageFrame(img1, 0, 543, 212, 82);
canvas.addShape(logo1);

Font font = new Font("Arial", Font.BOLD, 14);
Font fonte = new Font("Times New Roman", Font.BOLD, 12);

Scrollpane = new JScrollPane();
Scrollpane.setBounds(0, 82, 1320, 460);

tblPersonne = new JTable();
Scrollpane.setViewportView(tblPersonne);
//listPersonne = new ArrayList<Personne>();
listPersonne = new JList();
listPersonne.setBounds(1320, 75, 590, 325);
canvas.add(listPersonne);

lstModel = new DefaultListModel();
listPersonne.setModel(lstModel);


btnAjouter = new JButton("AJOUTER");
btnModifier = new JButton("Modifier");
btnSupprimer = new JButton("Supprimer");
btnQuitter = new JButton("Quitter");

btnAjouter.setBounds(805, 542, 100, 30);
btnModifier.setBounds(910, 542, 100, 30);
btnSupprimer.setBounds(1015, 542, 100, 30);
btnQuitter.setBounds(1120, 542, 100, 30);

lblNom = new JLabel("Rechercher par Nom: ");
lblNom.setBounds(225, 540, 208, 25);
lblNom.setForeground(Color.WHITE);
lblNom.setFont(font);

txtNom = new JTextField();
txtNom.setBounds(405, 540, 250, 25);
txtNom.setFont(fonte);

lblPrenom = new JLabel("Rechercher par Prénom: ");
lblPrenom.setBounds(225, 570, 208, 25);
lblPrenom.setForeground(Color.WHITE);
lblPrenom.setFont(font);

txtPrenom = new JTextField();
txtPrenom.setBounds(405, 570, 230, 25);
txtPrenom.setFont(fonte);

lblIM = new JLabel("Rechercher par IM: ");
lblIM.setBounds(225, 600, 208, 25);
lblIM.setForeground(Color.WHITE);
lblIM.setFont(font);

txtIM = new JTextField();
txtIM.setBounds(405, 600, 200, 25);
txtIM.setFont(fonte);


canvas.add(Scrollpane);
canvas.add(btnAjouter);
canvas.add(btnModifier);
canvas.add(btnSupprimer);
canvas.add(btnQuitter);
canvas.add(lblNom);
canvas.add(txtNom);
canvas.add(lblPrenom);
canvas.add(txtPrenom);
canvas.add(lblIM);
canvas.add(txtIM);

txtNom.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt){
txtNameReleased(evt);
}
});

btnAjouter.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent evt) {
btnAjouterActionPerformed(evt);
}

});

btnModifier.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent evt) {
btnModifierActionPerformed(evt);
}

});

btnSupprimer.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent evt) {
btnSupprimerActionPerformed(evt);
}

});

btnQuitter.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent evt) {
btnQuitterActionPerformed(evt);
}

});
}

private void txtNameReleased(KeyEvent evt){
String recNom = txtNom.getText();
rechercher(recNom);
}

private void rechercher(String recNom){
lstModel.clear();

try{
Statement st = ConnectionManager.getInstance().createStatement();

String query = "SELECT * FROM personne WHERE Nom like '" + recNom + "%'";
System.out.println(query);
ResultSet rs = st.executeQuery(query);

int nbLignes = 0;

//while(rs.next()){
while(rs.next())
nbLignes++;
nbLignes--;
rs.first();

String titres[] = {"IM", "Nom", "Prénom", "Date de Naissance", "Lieu de Naissance", "sexe", "CIN", "Entrée dans l'administration", "COCA", "Libellé Corps", "Grade Actuel", "Date d'Effet", "Impution Budgétaire", "Poste Occupé", "Direction", "Service", "Commune", "Disrict", "Région" };

int nbColonnes = titres.length;

Object[][] data = new Object[nbLignes][nbColonnes];

tblModelPersonne = new TableModel(data, titres);

int i = 0;
while(rs.next()){
int Id = Integer.parseInt(rs.getString("Id"));
String nom = rs.getString("Nom");
String prenom = rs.getString("Prenom");
String naiss = rs.getString("Date_naiss");

Personne personne = new Personne(Id, nom, prenom, naiss);
personne.setId(rs.getInt("Id"));
personne.setNom(rs.getString("Nom"));
personne.setPrenom(rs.getString("Prenom"));
personne.setNaiss(rs.getString("Date_naiss"));

data[i][1] = rs.getString("Nom");

lstModel.addElement(new Personne(Id, nom, prenom, naiss));

}

}catch(Exception e){
e.printStackTrace();
}
}

private void btnAjouterActionPerformed(ActionEvent evt){

}

private void btnModifierActionPerformed(ActionEvent evt){

}

private void btnSupprimerActionPerformed(ActionEvent evt){

}

private void btnQuitterActionPerformed(ActionEvent evt){

}

private void charger(){
lstModel.clear();
Statement st = ConnectionManager.getInstance().createStatement();

try{
String query ="SELECT * FROM personne";
ResultSet rs = st.executeQuery(query);

int nbLignes = 0;
while(rs.next())
nbLignes++;
nbLignes--;
rs.first();

String titres[] = {"IM", "Nom", "Prénom", "Date de Naissance", "Lieu de Naissance", "sexe", "CIN", "Entrée dans l'administration", "COCA", "Libellé Corps", "Grade Actuel", "Date d'Effet", "Impution Budgétaire", "Poste Occupé", "Direction", "Service", "Commune", "Disrict", "Région" };
int nbColonnes = titres.length;

Object[][] data = new Object[nbLignes][nbColonnes];

tblModelPersonne = new TableModel(data, titres);

int i = 0;
while(rs.next()){

int Id = Integer.parseInt(rs.getString("Id"));
String nom = rs.getString("Nom");
String prenom = rs.getString("Prenom");
String naiss = rs.getString("Date_naiss");

Personne personne = new Personne(Id, nom, prenom, naiss);
personne.setId(rs.getInt("Id"));
//personne.setImm(rs.getString("IM"));
personne.setNom(rs.getString("Nom"));
personne.setPrenom(rs.getString("Prenom"));
personne.setNaiss(rs.getString("Date_naiss"));
/*personne.setLieuNaiss(rs.getString("lieu_Naiss"));
personne.setSexe(rs.getString("Sexe"));
personne.setCin(rs.getString("Cin"));
personne.setEntreeAdmin(rs.getString("Entree_admin"));
personne.setCoca(rs.getString("Coca"));
personne.setLibCorps(rs.getString("Libelle_corps"));
personne.setGrade(rs.getString("Grade"));
personne.setDateEffet(rs.getString("Date_effet"));
personne.setImpution(rs.getString("Impution"));
personne.setPoste(rs.getString("Poste"));
personne.setDirection(rs.getString("Direction"));
personne.setService(rs.getString("Service"));
personne.setCommune(rs.getString("Commune"));
personne.setDistrict(rs.getString("District"));
personne.setRegion(rs.getString("Region"));*/

//listPersonne.add(personne);

//data[i][0] = rs.getString("IM");
data[i][1] = rs.getString("Nom");
data[i][2] = rs.getString("Prenom");
data[i][3] = rs.getString("Date_naiss");
/*data[i][4] = rs.getString("Lieu_naiss");
data[i][5] = rs.getString("Sexe");
data[i][6] = rs.getString("Cin");
data[i][7] = rs.getString("Entree_admin");
data[i][8] = rs.getString("Coca");
data[i][9] = rs.getString("Libelle_corps");
data[i][10] = rs.getString("Grade");
data[i][11] = rs.getString("Date_effet");
data[i][12] = rs.getString("Impution");
data[i][13] = rs.getString("Poste");
data[i][14] = rs.getString("Direction");
data[i][15] = rs.getString("Service");
data[i][16] = rs.getString("Commune");
data[i][17] = rs.getString("District");
data[i][18] = rs.getString("Region");*/

i++;

lstModel.addElement(new Personne(Id, nom, prenom, naiss));
}
tblPersonne.setModel(tblModelPersonne);

}catch(Exception e){
e.printStackTrace();
}
}

@Override
public void notifyObserver(String message) {
charger();

}
}
0