Salut Pierre,
J'ai modifié le programme pour pouvoir le tester et vérifier si ce que je te propose de faire fonctionne.
Tu peux le compiler et tester et me dire si c'est transposable:
import java.sql.*;
import java.util.ArrayList;
import java.util.Iterator;
//import java.util.List;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//import javax.swing.event.ListSelectionEvent;
//import javax.swing.event.ListSelectionListener;
import javax.swing.plaf.DesktopIconUI;
import sun.security.action.OpenFileInputStreamAction;
//warning: sun.security.action.OpenFileInputStreamAction is Sun proprietary API and may be removed in a future release
import java.io.File;
import java.io.IOException;
import java.io.FileNotFoundException;
/**
* @author Patricia e Pierre
*
*/
public class Recherche extends JFrame implements ActionListener {
//Arraylist
//ArrayList <candidats> listret;
//ArrayList<Object> listret = new ArrayList<Object>();
//definicao PB
JButton PBfiltrer = new JButton("Nouvelle recherche");
//JButton PBeffacer = new JButton("Nouvelle recherche"); supprim+e
JButton PBdetailcv = new JButton("Voir CV candidat");
JButton PBprev = new JButton("<");
JButton PBnext = new JButton(">");
JButton PBfermer = new JButton("Fermer");
//criacao das comboboxes e seus labels
String [] combomob = {"AL",
"BE",
"FR",
"LU",
"TOUS"};
String [] combofonc = {"DEV",
"MAN",
"P.MAN",
"ADM",
"TOUS"};
String [] combospec = {"COOLGEN",
"COBOL",
"JAVA",
".NET",
"TOUS"};
//definicao Jcombobox
JComboBox mob = new JComboBox(combomob);
JComboBox fonc = new JComboBox(combofonc);
JComboBox spec = new JComboBox(combospec);
//definicao dos entryfields
JTextField EFfiltre1 = new JTextField(20);
JTextField EFfiltre2 = new JTextField(20);
JTextField EFfiltre3 = new JTextField(20);
JTextField EFfiltre4 = new JTextField(20);
JTextField EFfiltre5 = new JTextField(20);
JTextField EFfiltre6 = new JTextField(20);
JTextField EFfiltre7 = new JTextField(20);
//list e listmodel
static DefaultListModel listModel;
JList liste;
JFrame filtre;
public static void main(String[] args) {
/*
// créer la première listModel
listret = DB.connection(filtre1, filtre2);
Iterator<candidats> iter = listret.iterator();
while(iter.hasNext())
{
candidats element = iter.next();
//System.out.println(element.nom);
String row = element.getPrenom() + ", " + element.getNom() + " - " + element.getChemincv();
listModel.addElement(row);
} */
// Simulation création première listModel:
listModel = new DefaultListModel();
listModel.addElement(" 0 Ligne 1 ....................................................");
listModel.addElement(" 1 Ligne 2 ....................................................");
listModel.addElement(" 2 Ligne 3 ....................................................");
listModel.addElement(" 3 Ligne 4 ....................................................");
listModel.addElement(" 4 Ligne 5 ....................................................");
listModel.addElement(" 5 Ligne 6 ....................................................");
listModel.addElement(" 6 Ligne 7 ....................................................");
listModel.addElement(" 7 Ligne 8 ....................................................");
Recherche gui = new Recherche();
gui.go();
}
public void go()
{
filtre = new JFrame();
filtre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
filtre.setTitle("Recherche candidat - EUREKA ITS SA");
filtre.setSize(950,650);
filtre.setVisible(true);
//Liste
liste = new JList(listModel);
liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
liste.setSelectedIndex(0);
liste.setSize(450, 250);
liste.setLocation(100, 200);
liste.setVisibleRowCount(10);
filtre.getContentPane().add(liste);
liste.setVisible(true);
//criacao dos PBs
PBfiltrer.setToolTipText("Lancer la recherche des candidats");
filtre.getContentPane().add(PBfiltrer);
PBfiltrer.setSize(150, 20);
PBfiltrer.setLocation(400, 480);
PBfiltrer.addActionListener(this);
PBfermer.setToolTipText("Sortir de l'application");
filtre.getContentPane().add(PBfermer);
PBfermer.setSize(120, 20);
PBfermer.setLocation(100, 480);
PBfermer.addActionListener(this);
// supprimé
//PBeffacer.setToolTipText("Vide 100% des champs");
//filtre.getContentPane().add(PBeffacer);
//PBeffacer.setSize(150, 20);
//PBeffacer.setLocation(250, 480);
//PBeffacer.addActionListener(this);
PBdetailcv.setToolTipText("Ouvre le CV en format WORD");
filtre.getContentPane().add(PBdetailcv);
PBdetailcv.setSize(150, 20);
PBdetailcv.setLocation(630, 310);
PBdetailcv.addActionListener(this);
PBprev.setToolTipText("Pagination");
filtre.getContentPane().add(PBprev);
PBprev.setSize(45, 20);
PBprev.setLocation(555, 200);
PBnext.setToolTipText("Pagination");
filtre.getContentPane().add(PBnext);
PBnext.setSize(45, 20);
PBnext.setLocation(555, 430);
PBnext.addActionListener(this);
//criacao dos Labels e entry fields
JLabel LBfiltre1 = new JLabel("Mots clés");
filtre.getContentPane().add(LBfiltre1);
filtre.getContentPane().add(EFfiltre1);
LBfiltre1.setSize(120, 20);
LBfiltre1.setLocation(80, 130);
EFfiltre1.setSize(120, 20);
EFfiltre1.setLocation(80, 150);
JLabel LBfiltre2 = new JLabel("");
filtre.getContentPane().add(LBfiltre2);
filtre.getContentPane().add(EFfiltre2);
LBfiltre2.setSize(120, 20);
LBfiltre2.setLocation(220, 130);
EFfiltre2.setSize(120, 20);
EFfiltre2.setLocation(220, 150);
JLabel LBfiltre3 = new JLabel("");
filtre.getContentPane().add(LBfiltre3);
filtre.getContentPane().add(EFfiltre3);
LBfiltre3.setSize(120, 20);
LBfiltre3.setLocation(360, 130);
EFfiltre3.setSize(120, 20);
EFfiltre3.setLocation(360, 150);
JLabel LBfiltre4 = new JLabel("");
filtre.getContentPane().add(LBfiltre4);
filtre.getContentPane().add(EFfiltre4);
LBfiltre4.setSize(120, 20);
LBfiltre4.setLocation(500, 130);
EFfiltre4.setSize(120, 20);
EFfiltre4.setLocation(500, 150);
JLabel LBfiltre5 = new JLabel("");
filtre.getContentPane().add(LBfiltre5);
filtre.getContentPane().add(EFfiltre5);
LBfiltre5.setSize(120, 20);
LBfiltre5.setLocation(640, 130);
EFfiltre5.setSize(120, 20);
EFfiltre5.setLocation(640, 150);
JLabel LBfiltre6 = new JLabel("Date début CV");
filtre.getContentPane().add(LBfiltre6);
filtre.getContentPane().add(EFfiltre6);
LBfiltre6.setSize(120, 20);
LBfiltre6.setLocation(500, 40);
EFfiltre6.setSize(120, 20);
EFfiltre6.setLocation(500, 60);
JLabel LBfiltre7 = new JLabel("Date fin CV");
filtre.getContentPane().add(LBfiltre7);
filtre.getContentPane().add(EFfiltre7);
LBfiltre7.setSize(120, 20);
LBfiltre7.setLocation(640, 40);
EFfiltre7.setSize(120, 20);
EFfiltre7.setLocation(640, 60);
//definicao Jcombobox
JLabel LBmob = new JLabel("Mobilité");
JLabel LBfonc = new JLabel("Fonction");
JLabel LBspec = new JLabel("Spécialisation");
filtre.getContentPane().add(mob);
filtre.getContentPane().add(fonc);
filtre.getContentPane().add(spec);
filtre.getContentPane().add(LBmob);
filtre.getContentPane().add(LBfonc);
filtre.getContentPane().add(LBspec);
//placement des comboboxes
mob.setSize(120, 20);
mob.setLocation(80, 60);
LBmob.setSize(120, 20);
LBmob.setLocation(80, 40);
fonc.setSize(120, 20);
fonc.setLocation(220, 60);
LBfonc.setSize(120, 20);
LBfonc.setLocation(220, 40);
spec.setSize(120, 20);
spec.setLocation(360, 60);
LBspec.setSize(120, 20);
LBspec.setLocation(360, 40);
//definir valores default das combo boxes
mob.setSelectedIndex(4);
fonc.setSelectedIndex(4);
spec.setSelectedIndex(4);
//foco no primeiro campo
mob.requestFocus();
}
@Override
public void actionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
Object source = event.getSource();
//gestion PBfermer
if (source == PBfermer) {
System.exit(0); }
// supprimé
/*
//gestion PBeffacer (nouvelle rechercher)
if (source == PBeffacer) {
System.out.println("nouvelle recherche");
EFfiltre1.setText("");
EFfiltre2.setText("");
EFfiltre3.setText("");
EFfiltre4.setText("");
EFfiltre5.setText("");
EFfiltre6.setText("");
EFfiltre7.setText("");
mob.setSelectedIndex(4);
fonc.setSelectedIndex(4);
spec.setSelectedIndex(4); //} déplacé après listModel.clear <<<<<<<<<<<<<<<<<<<<<<
//limpar list antes de nova busca
listModel.clear();
}
*/
//gestion PBfiltrer (nouvelle recherche) ancien nom: chercher
if (source == PBfiltrer) {
//listModel.clear();
// supprimé puisqu'il n'y a plus l'ancien bouton nouvelle recherche
/*
System.out.println("chercher");
String filtre1 = EFfiltre1.getText();
String filtre2 = EFfiltre2.getText();
String filtre3 = EFfiltre3.getText();
String filtre4 = EFfiltre4.getText();
String filtre5 = EFfiltre5.getText();
String filtre6 = EFfiltre6.getText();
String filtre7 = EFfiltre7.getText();
*/
/*
// créer une autre listModel
listret = DB.connection(filtre1, filtre2);
Iterator<candidats> iter = listret.iterator();
while(iter.hasNext())
{
candidats element = iter.next();
//System.out.println(element.nom);
String row = element.getPrenom() + ", " + element.getNom() + " - " + element.getChemincv();
listModel.addElement(row);
} */
// Simulation autre listModel:
listModel = new DefaultListModel();
listModel.addElement(" 0 Ligne 1 ****************************************************");
listModel.addElement(" 1 Ligne 2 ****************************************************");
listModel.addElement(" 2 Ligne 3 ****************************************************");
listModel.addElement(" 3 Ligne 4 ****************************************************");
listModel.addElement(" 4 Ligne 5 ****************************************************");
listModel.addElement(" 5 Ligne 6 ****************************************************");
listModel.addElement(" 6 Ligne 7 ****************************************************");
listModel.addElement(" 7 Ligne 8 ****************************************************");
filtre.dispose();
Recherche gui = new Recherche();
gui.go();
}
else
{
//gestion PBdetailcv (Voir CV candidat)
if (source == PBdetailcv) {
//verificar se alguma linha foi selecionada na lista
//int indexliste = liste.getMinSelectionIndex();
int indexliste = liste.getSelectedIndex();
System.out.println("\nindexListe: " + indexliste);
if (indexliste == -1){
System.out.println("Candidat not selected on the list");
}
else{
System.out.println("recuperar linha selecionada");
//recuperar linha selecionada
Object rowsel = liste.getSelectedValue();
System.out.println("Ligne choisie: " + rowsel);
}
// je ne teste pas la suite n'ayant pas la structure de la ligne ni le reste
/*
String cv = rowsel.toString();
String chemincv = cv.substring(66);
String chemincvcomplet = "C:\\CV\\" + chemincv + ".doc";
//String chemincvcomplet = "C:\\CV\\" + "CV_BAUDRU" + ".doc";
//Open word document from java
try {
//Desktop.getDesktop().open( new File(chemincvcomplet));
Runtime.getRuntime().exec(chemincvcomplet);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
} */
}
}
//gestion PBnext
if (source == PBnext) {
}
//gestion PBprev
if (source == PBprev) {
}
}
}
Cordialement,
Dan
26 mars 2010 à 06:31
J'ai rajouté liste.setSelectedIndex(-1); mais j'ai toujours -1 comme résultat du int indexliste = liste.getSelectedIndex();
C'est bizard vu que ça marché bien avant et que je n'ai rien changé dans cette partie du code....
Cordialement, Pierre.
26 mars 2010 à 07:00
System.err.println("Candidat not selected on the list"); après le else{... ?
ajoute quelques caractères comme par exemple:
System.err.println(">>>>>>>>>>>>>>>>>>> Candidat not selected on the list"); pour être certain que c'est bien ici qu'on passe
Dan