Utilisation de getselectedindex JAVA
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
-
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