Utilisation de getselectedindex JAVA
Fermé
Bonjour ,
Pour récupérer l'index d'une ligne selectionée dans une JLIST j'ai utilisé "getSelectedIndex()" et ça marché très bien.......cet aprem j'ai fait des modifs dans le ELSE juste après le if (indexliste == -1) ci-dessous, depuis le "getSelectedIndex()" ne marche plus j'ai toujours le message "Candidat not selected on the list" en cas d'avoir -1 comme retour.....mais je n'ai rien chancé dans mon IF, juste dans le ELSE....
if (source == PBdetailcv) {
//verificar se alguma linha foi selecionada na lista
int indexliste = liste.getSelectedIndex();
if (indexliste == -1){
System.err.println("Candidat not selected on the list");
}
else{.....
Est-ce que quelqu'un peut m'aider svp?
JAVA se conporte bizarment si on utilise SWING et AWT au même temps ?
A+ Pierre.
Pour récupérer l'index d'une ligne selectionée dans une JLIST j'ai utilisé "getSelectedIndex()" et ça marché très bien.......cet aprem j'ai fait des modifs dans le ELSE juste après le if (indexliste == -1) ci-dessous, depuis le "getSelectedIndex()" ne marche plus j'ai toujours le message "Candidat not selected on the list" en cas d'avoir -1 comme retour.....mais je n'ai rien chancé dans mon IF, juste dans le ELSE....
if (source == PBdetailcv) {
//verificar se alguma linha foi selecionada na lista
int indexliste = liste.getSelectedIndex();
if (indexliste == -1){
System.err.println("Candidat not selected on the list");
}
else{.....
Est-ce que quelqu'un peut m'aider svp?
JAVA se conporte bizarment si on utilise SWING et AWT au même temps ?
A+ Pierre.
7 réponses
Utilisateur anonyme
25 mars 2010 à 23:51
25 mars 2010 à 23:51
Salut,
Lors de la création de ta Jlist:
ajoute liste.setSelectedIndex(-1); // -1 pas de selection initiale
il n'y aura pas de sélection initiale et indexliste ne prendra alors que la valeur du numéro de ligne cliqué (0 à n, avec n = nombre total de lignes de la liste -1), le test if (indexliste == -1){ n'aura plus de raison d'être...
Cordialement,
Dan
Lors de la création de ta Jlist:
ajoute liste.setSelectedIndex(-1); // -1 pas de selection initiale
il n'y aura pas de sélection initiale et indexliste ne prendra alors que la valeur du numéro de ligne cliqué (0 à n, avec n = nombre total de lignes de la liste -1), le test if (indexliste == -1){ n'aura plus de raison d'être...
Cordialement,
Dan
Utilisateur anonyme
27 mars 2010 à 11:17
27 mars 2010 à 11:17
Il faut d'abord créer listModel avant d'appeler la méthode go() puis dans celle-ci:
Je n'ai bien entendu pas éssayé sans BD
Dan
public void go(){ JFrame filtre = new JFrame(); filtre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); filtre.setTitle("Recherche candidat - EUREKA ITS SA"); filtre.setSize(950,650); filtre.setVisible(true); //Liste et LISTMODEL liste = new JList(listModel); <<<<<<<<<<< création de la liste liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); liste.setSelectedIndex(-1); liste.setSize(450, 250); ......... ........
Je n'ai bien entendu pas éssayé sans BD
Dan
Salut Dan, merci pozr ta réponse....
Dans ce cas si je doit créer la liste dans la méthode go() elle n'est plus utilisable ici:
public void mouseClicked(MouseEvent event) {
// TODO Auto-generated method stub
Object source = event.getSource();
//gestion PBdetailcv
if (source == PBdetailcv) {
//verificar se alguma linha foi selecionada na lista
//int indexliste = liste.getMinSelectionIndex();
int indexliste = liste.getSelectedIndex(); System.out.println(indexliste);
if (indexliste == -1){
System.out.println("Candidat not selected on the list");
}
else{
//recuperar linha selecionada
Object rowsel = liste.getSelectedValue(); System.out.println(rowsel);
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));
Merci beaucoup ! Pierre.
Dans ce cas si je doit créer la liste dans la méthode go() elle n'est plus utilisable ici:
public void mouseClicked(MouseEvent event) {
// TODO Auto-generated method stub
Object source = event.getSource();
//gestion PBdetailcv
if (source == PBdetailcv) {
//verificar se alguma linha foi selecionada na lista
//int indexliste = liste.getMinSelectionIndex();
int indexliste = liste.getSelectedIndex(); System.out.println(indexliste);
if (indexliste == -1){
System.out.println("Candidat not selected on the list");
}
else{
//recuperar linha selecionada
Object rowsel = liste.getSelectedValue(); System.out.println(rowsel);
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));
Merci beaucoup ! Pierre.
Utilisateur anonyme
Modifié par danimo le 27/03/2010 à 12:22
Modifié par danimo le 27/03/2010 à 12:22
Si en déclarant comme ceci:
Dan
//list e listmodel DefaultListModel listModel; JList liste;
Dan
Utilisateur anonyme
31 mars 2010 à 02:41
31 mars 2010 à 02:41
Re,
Le problème index = -1 est un fait si évident (comme très souvent) qu'on passe à coté...
C'est ici:
Concernant la première liste n'oublie pas:
Autre chose, concernant les boutons et le listener, tu peux remetttre sans problème tes "import.awt.....":
(sans oublier les PBxxxxx.addActionListener(this);
Cordialement,
Dan
Le problème index = -1 est un fait si évident (comme très souvent) qu'on passe à coté...
C'est ici:
@Override public void actionPerformed(ActionEvent event) { // TODO Auto-generated method stub Object source = event.getSource(); //gestion PBfermer if (source == PBfermer) { System.exit(0); } //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 (chercher) if (source == PBfiltrer) { 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(); //limpar list antes de nova busca listModel.clear(); //suivi de la céation ListModel ET DE: filtre.dispose(); // important Recherche gui = new Recherche(); gui.go(); } else { //.......... //...........
Concernant la première liste n'oublie pas:
//------------ //.................. //list e listmodel static DefaultListModel listModel; //JList liste = new JList(listModel); // à faire après la création de listModel JList liste; JFrame filtre; public static void main(String[] args) { //suivi de la céation ListModel Recherche gui = new Recherche(); gui.go(); }
Autre chose, concernant les boutons et le listener, tu peux remetttre sans problème tes "import.awt.....":
(sans oublier les PBxxxxx.addActionListener(this);
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; import java.io.File; import java.io.IOException; /** * @author Patricia e Pierre * */ public class Recherche extends JFrame implements ActionListener { <<<<<<<<<<<<<<<< //............ //.............
Cordialement,
Dan
Salut Dan, merci beaucoup pour ton message !
Alors j'ai déplacé les 'setSelectedIndex' est maintenant ça marche bien, mon getseledtedindex arrive a voir que j'ai selectionné une ligne dans ma liste.....SUPER merci beaucoup !!!
Pour le filtre.dispose() j'ai une erreur de comp:
"Exception in thread "main" java.lang.NullPointerException" ???
J'ai aussi une autre question svp, ci-dessous le code où je dois essayer de lire une ligne dans la DB............mais j'ai toujours cette erreur ci-dessous:
"Le jeu de résultat n'a pas de ligne actuelle."
C'est du au fait qu'il na rien toruvée dans la base ?
int nullnom = nom.length();
int nullprenom = prenom.length();
if((nullnom != 0)&&(nullprenom != 0)){
rs = stmt.executeQuery("SELECT * FROM CANDIDAT WHERE NOM = '" + nom + "' and PRENOM = '" + prenom + "'");
System.out.println("lecture par nom et prenom");
retchemincv=rs.getString("chemin_CV");
System.out.println("Chemin1" + retchemincv);
}
while (rs.next()){
retchemincv=rs.getString("chemin_CV");
System.out.println("Chemin1" + retchemincv);
}
}
catch (Exception e){
System.out.println("Erro :" + e.getMessage());
e.printStackTrace();
}
Cordialement, Pierre.
Alors j'ai déplacé les 'setSelectedIndex' est maintenant ça marche bien, mon getseledtedindex arrive a voir que j'ai selectionné une ligne dans ma liste.....SUPER merci beaucoup !!!
Pour le filtre.dispose() j'ai une erreur de comp:
"Exception in thread "main" java.lang.NullPointerException" ???
J'ai aussi une autre question svp, ci-dessous le code où je dois essayer de lire une ligne dans la DB............mais j'ai toujours cette erreur ci-dessous:
"Le jeu de résultat n'a pas de ligne actuelle."
C'est du au fait qu'il na rien toruvée dans la base ?
int nullnom = nom.length();
int nullprenom = prenom.length();
if((nullnom != 0)&&(nullprenom != 0)){
rs = stmt.executeQuery("SELECT * FROM CANDIDAT WHERE NOM = '" + nom + "' and PRENOM = '" + prenom + "'");
System.out.println("lecture par nom et prenom");
retchemincv=rs.getString("chemin_CV");
System.out.println("Chemin1" + retchemincv);
}
while (rs.next()){
retchemincv=rs.getString("chemin_CV");
System.out.println("Chemin1" + retchemincv);
}
}
catch (Exception e){
System.out.println("Erro :" + e.getMessage());
e.printStackTrace();
}
Cordialement, Pierre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
31 mars 2010 à 16:15
31 mars 2010 à 16:15
Re,
Concernant filtre.dispose(), c'est certainement qu'ici (<<<<<<<<<<<):
tu as laissé JFrame filtre = ....
Il faut enlever JFrame puisqu'on l'a dejà déclaré
Pour le problème de DB, je vais t'avouer que je ne les utilise pas et il serait mieux que tu ouvres un nouveau "post" pour obtenir une réponse d'un de nos amis qui connaît...
Cordialement,
Dan
Concernant filtre.dispose(), c'est certainement qu'ici (<<<<<<<<<<<):
public void go(){ JFrame filtre = new JFrame(); // <<<<<<<<<<< filtre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); filtre.setTitle("Recherche candidat - EUREKA ITS SA"); filtre.setSize(950,650); filtre.setVisible(true);
tu as laissé JFrame filtre = ....
Il faut enlever JFrame puisqu'on l'a dejà déclaré
//list e listmodel static DefaultListModel listModel; //JList liste = new JList(listModel); // à faire après la création de listModel JList liste; JFrame filtre; // ici <<<<<<<<<<<<<<<<<<<<<<<< public static void main(String[] args) {
Pour le problème de DB, je vais t'avouer que je ne les utilise pas et il serait mieux que tu ouvres un nouveau "post" pour obtenir une réponse d'un de nos amis qui connaît...
Cordialement,
Dan
Salut Dan, merci beaucoup pour ton message !
Pour le 'dispose', je l'ai mis mais j'ai une erreur....
Syntax error on token "dispose", Identifier expected after this token
//list e listmodel
DefaultListModel listModel = new DefaultListModel();
JList liste;
filtre.dispose();
public static void main(String[] args) {
Recherche gui = new Recherche();
gui.go();
}
Cordialement, Pierre.
Pour le 'dispose', je l'ai mis mais j'ai une erreur....
Syntax error on token "dispose", Identifier expected after this token
//list e listmodel
DefaultListModel listModel = new DefaultListModel();
JList liste;
filtre.dispose();
public static void main(String[] args) {
Recherche gui = new Recherche();
gui.go();
}
Cordialement, Pierre.
Utilisateur anonyme
1 avril 2010 à 14:16
1 avril 2010 à 14:16
salut,
À quoi sert filtre.dispose(); ?
Tout simplement à fermer la fenêtre filtre...
Je souhaitais t'en parler plus tard.
Pourquoi fermer la fenêtre? Pour éviter qu'à chaque nouvelle recherche, on se retrouve avec une fenêtre suplémentaire, ce qui serait coûteux en mémoire...
Donc la place de filtre.dispose(); n'est pas ici c'est d'ailleur refusé et en plus, pas en remplacement de JFrame filtre;
Il faut rester comme ceci:
D'autre part, il faut céer la première listModel avant le gui.go(); donc dans la méthode main(...) :
Et dans go();
Et bien entendu dans le listener:
J'ajouterai qu'il n'est même plus nécessaire d'avoir le bouton PBeffacer mais garder listModel.clear();
Et de nommer le bouton PBfiltrer >> nouvelle recherche
Ce qui donnerait:
J'espère n'avoir rien oublié dans mes copier/coller...
Cordialement et a++
Dan
À quoi sert filtre.dispose(); ?
Tout simplement à fermer la fenêtre filtre...
Je souhaitais t'en parler plus tard.
Pourquoi fermer la fenêtre? Pour éviter qu'à chaque nouvelle recherche, on se retrouve avec une fenêtre suplémentaire, ce qui serait coûteux en mémoire...
Donc la place de filtre.dispose(); n'est pas ici c'est d'ailleur refusé et en plus, pas en remplacement de JFrame filtre;
Il faut rester comme ceci:
......... ............... //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;
D'autre part, il faut céer la première listModel avant le gui.go(); donc dans la méthode main(...) :
public static void main(String[] args) { 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); } Recherche gui = new Recherche(); gui.go(); }
Et dans go();
public void go(){ //JFrame filtre = new JFrame(); // >>>>>>> remplacer cette ligne par filtre = new JFrame(); filtre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); filtre.setTitle("Recherche candidat - EUREKA ITS SA"); filtre.setSize(950,650); filtre.setVisible(true); ........ .........
Et bien entendu dans le listener:
........... //gestion PBfiltrer (chercher) if (source == PBfiltrer) { 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(); //limpar list antes de nova busca listModel.clear(); // créer la nouvelle 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); } filtre.dispose(); Recherche gui = new Recherche(); gui.go(); } else { .................... .....................
J'ajouterai qu'il n'est même plus nécessaire d'avoir le bouton PBeffacer mais garder listModel.clear();
Et de nommer le bouton PBfiltrer >> nouvelle recherche
Ce qui donnerait:
@Override public void actionPerformed(ActionEvent event) { // TODO Auto-generated method stub Object source = event.getSource(); //gestion PBfermer if (source == PBfermer) { System.exit(0); } //gestion PBfiltrer (nouvelle recherche) if (source == PBfiltrer) { listModel.clear(); // créer la nouvelle 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); } filtre.dispose(); Recherche gui = new Recherche(); gui.go(); } else { .................... .....................
J'espère n'avoir rien oublié dans mes copier/coller...
Cordialement et a++
Dan
Utilisateur anonyme
2 avril 2010 à 09:50
2 avril 2010 à 09:50
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:
Cordialement,
Dan
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