1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/**
* Créer et initialise le tableau resultat
* chaque ligne sera composé d'une boite à coché et d'une description sommaire du poste
* @param result les resultats de la requete
* @param duree la durée d'un stage
* @param panelPrincipal le panel auquel il faut ajouter le tableau
*/
private void initTableResult(ResultSet result, String duree, JPanel panelPrincipal) {
// TODO Auto-generated method stub
//on créé un nouveau panel qui contiendra une checkbox et le tableau
JPanel pTableau = new JPanel(new GridLayout(2,0));
//calcul du nombre de resultat pour definir le nombre de ligne
int NbrResult = 0;
try {
//on ce positionne à la derniere ligne
result.last();
NbrResult = result.getRow();
//on ce remet avant la premiere ligne
result.beforeFirst();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//attribut de la table
String[] columName = {"Selectioner","Descriptoin"};
Object [][] data = new Object[NbrResult][2];
//vecteur de checkbox pour pouvoir y acceder ulterieurement
final Vector<JCheckBox> vCheck = new Vector<JCheckBox>();
//la premier checkbox sert à selectioner toutes les autres.
final JCheckBox totalcheck = new JCheckBox("Tout selectionner");
//on lui met un action listener
totalcheck.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
//si on coche la checkbox on coche toutes les autres
if(totalcheck.isSelected())
for(int i = 0;i < vCheck.size();++i)
vCheck.get(i).setSelected(true);
//sinon on les decoches
if (!totalcheck.isSelected())
for(int i = 0;i < vCheck.size();++i)
vCheck.get(i).setSelected(false);
}//action performed
});//actionlistener
//on met les bonne couleur a la checkbox
totalcheck.setBackground(Color.white);
totalcheck.setForeground(Color.blue);
//on ajoute la checkbox
//boucle de remplissage du tableau
pTableau.add(totalcheck);
//pour calculer le nbr de jour entre 2 dates
long MILLISECONDE_PER_DAY = 1000 * 60 * 60 * 24;
try {
int row = 0;//compteur de ligne
while(result.next()){
//avant d'ajouter un poste on verifie si la duréé correspond
//si la durée n'est pas nulle on la met sous forme d'entier
long dureelong = 0;
if (!(duree == null)){
for(int i = 0; i < duree.length(); ++i)
dureelong = dureelong*10 + (duree.charAt(i) - '0');
//on extrait les dates de debut et fin
Date datedeb = result.getDate(12);
Date datefin = result.getDate(13);
long diff = datefin.getTime() - datedeb.getTime();
long dureeStageDay = diff/MILLISECONDE_PER_DAY;
//si la durée de stage ne correspond pas on ne met pas le resultat
if (dureelong != dureeStageDay)continue;
}
//création d'une checkbox
JCheckBox check = new JCheckBox();
//on met une check box dans la premiere colonne
data[row][0] = check;
vCheck.add(check);
//recherche des noms de commune
//ouverture d'une connection
ConnectionAcess conn = new ConnectionAcess();
Statement stm = conn.conn.createStatement();
ResultSet comm = stm.executeQuery("select NomCommune into Commune where CodePostal = '" + result.getString(4) + "';");
//dans la deuxieme colonne on met les infos interessantes
data[row][1] = "Poste : "+ result.getString(9) +
" Secteur : "+ result.getString(3)
+ " Commune : "+ comm.getString(1)
+ "Date : du " + result.getString(12) + " au " + result.getString(13);
}//boucle remplissage
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//création de la table
JTable tableResult = new JTable(data,columName);
JScrollPane scroll = new JScrollPane(tableResult);
scroll.setSize(20,20);
scroll.setAutoscrolls(true);
//on ajoute le tableau au panel
pTableau.add(scroll);
//ajout à la fenetre
panelPrincipal.add(pTableau);
} |
Partager