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,
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-
-
-
Salut Dan, merci encore pour ton message !
Pas d'autre System.err.println("Candidat not selected on the list")......
Si je fait :
int indexliste = liste.getSelectedIndex();
System.out.println(indexliste); // ici j'ai toujours -1 même si occurence selectionnée dans la liste.
C'est come si le getselectedindex était ignoré lors de la éxecution du programme.......mais je n'ai aucunne erreur de compilation......et hier ça marché encore bien....on ma dit que melanger AWT et SWING poser des problèmes.....que pensez-vous ?
Merci beaucoup ! PIerre. -
@PBAUDRUBon il me faudrait plus de code, au moins la partie création de la liste (JFrame, JList, listener, à partir de quoi est créée la liste)
Dan -
Salut Dan,
Voici mon code, j'ai déjà remplacé tout ce qui était AWT, mais même comme ça mon getselectedindex ne marche pas......j'ai toujours -1 même avec une occurence selectionné dans ma liste.
import java.sql.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.plaf.DesktopIconUI;
import sun.security.action.OpenFileInputStreamAction;
//import java.awt.Desktop;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
/**
* @author Patricia e Pierre
*
*/
public class Recherche extends JFrame implements ChangeListener {
//Arraylist
ArrayList <candidats> listret;
//definicao PB
JButton PBfiltrer = new JButton("Chercher");
JButton PBeffacer = new JButton("Nouvelle recherche");
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
DefaultListModel listModel = new DefaultListModel();
JList liste = new JList(listModel);
public static void main(String[] args) {
Recherche gui = new Recherche();
gui.go();
}
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.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);
//liste.setSelectedIndex(-1); // -1 pas de selection initiale
//criacao dos PBs
PBfiltrer.setToolTipText("Lancer la recherche des candidats");
filtre.getContentPane().add(PBfiltrer);
PBfiltrer.setSize(120, 20);
PBfiltrer.setLocation(430, 480);
//PBfiltrer.addActionListener(this);
PBfiltrer.addChangeListener(this);
PBfermer.setToolTipText("Sortir de l'application");
filtre.getContentPane().add(PBfermer);
PBfermer.setSize(120, 20);
PBfermer.setLocation(100, 480);
//PBfermer.addActionListener(this);
PBfermer.addChangeListener(this);
PBeffacer.setToolTipText("Vide 100% des champs");
filtre.getContentPane().add(PBeffacer);
PBeffacer.setSize(150, 20);
PBeffacer.setLocation(250, 480);
//PBeffacer.addActionListener(this);
PBeffacer.addChangeListener(this);
PBdetailcv.setToolTipText("Ouvre le CV en format WORD");
filtre.getContentPane().add(PBdetailcv);
PBdetailcv.setSize(150, 20);
PBdetailcv.setLocation(630, 310);
//PBdetailcv.addActionListener(this);
PBdetailcv.addChangeListener(this);
PBprev.setToolTipText("Pagination");
filtre.getContentPane().add(PBprev);
PBprev.setSize(45, 20);
PBprev.setLocation(555, 200);
//PBprev.addActionListener(this);
PBprev.addChangeListener(this);
PBnext.setToolTipText("Pagination");
filtre.getContentPane().add(PBnext);
PBnext.setSize(45, 20);
PBnext.setLocation(555, 430);
//PBnext.addActionListener(this);
PBnext.addChangeListener(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 stateChanged(ChangeEvent event) {
// TODO Auto-generated method stub
Object source = event.getSource();
//gestion PBfermer
if (source == PBfermer) {
System.exit(0); }
//gestion PBeffacer
if (source == PBeffacer) {
EFfiltre1.setText("");
EFfiltre2.setText("");
EFfiltre3.setText("");
EFfiltre4.setText("");
EFfiltre5.setText("");
EFfiltre6.setText("");
EFfiltre7.setText("");
mob.setSelectedIndex(4);
fonc.setSelectedIndex(4);
spec.setSelectedIndex(4);}
//limpar list antes de nova busca
listModel.clear();
//gestion PBfiltrer
if (source == PBfiltrer) {
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();
//ArrayList <candidats> listret = DB.connection(filtre1);
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);
}
}
//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));
Runtime.getRuntime().exec(chemincvcomplet);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//gestion PBnext
if (source == PBnext) {
}
//gestion PBprev
if (source == PBprev) {
}
}
/*@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
if (source == PBeffacer) {
EFfiltre1.setText("");
EFfiltre2.setText("");
EFfiltre3.setText("");
EFfiltre4.setText("");
EFfiltre5.setText("");
EFfiltre6.setText("");
EFfiltre7.setText("");
mob.setSelectedIndex(4);
fonc.setSelectedIndex(4);
spec.setSelectedIndex(4);}
//limpar list antes de nova busca
listModel.clear();
//gestion PBfiltrer
if (source == PBfiltrer) {
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();
//ArrayList <candidats> listret = DB.connection(filtre1);
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);
}
}
//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));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//gestion PBnext
if (source == PBnext) {
}
//gestion PBprev
if (source == PBprev) {
}
}*/
}
Je suis vraimment un débutant alors n'hésitez pas a me dire ce qui ne va pas dans mon code svp.
Cordialement, Pierre.
-