Bonjour,

J'ai un Jframe dans lequel il y a un formulaire de recherche composé de JTextfield et de JCombobox. Lorsque j'appuie sur le bouton "rechercher", je souhaiterai que le résultat apparaisse dans un Jtable en dessous du formulaire (après le bouton de recherche). J'ai plusieurs essaie depuis 2 jours mais mon Jtable n'apparaît pas bien q'en faisant un system.out.println du row (ligne de résultat), la recherche est bien éxécutée. Voici mon code et merci de votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
		motCle = new JTextField();
		motCle.setColumns(10);
 
		String[] choices = {"", "Licence - Bachelor", "Master - Master", "Doctorat - Doctorate, Ph.D."};
		comboNiveau = new JComboBox<Object>(choices);
 
 
		comboLocal = new JComboBox<String>();
		localisation(comboLocal);
 
		comboPays = new JComboBox<String>();
		paysnaiss(comboPays);
 
		comboSecteur = new JComboBox<String>();
		secteurlist(comboSecteur);
 
 
		table_1 = new JTable();
		final String motcle = motCle.getText();
		final Object level = comboNiveau.getSelectedItem();
		final Object localis = comboLocal.getSelectedItem();
		final Object pays = comboPays.getSelectedItem();
		final Object secteur = comboSecteur.getSelectedItem();
 
		JButton btnRechercher = new JButton("Rechercher");
		btnRechercher.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
 
				new ResultsSearch(motcle, level, localis, pays, secteur, table_1);
 
			}
		});
Voici la fonction ResultsSearch
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
package sentalents.db;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
 
import java.util.Vector;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
//import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
 
/*import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;*/
 
 
public class ResultsSearch {
 
	public  ResultsSearch(String a, Object b, Object c, Object d, Object e, JTable t) {
		//public ResultsSearch(String a) {
		Connection conn = ConnectionManager.getInstance().getConnection();
		//String sql = "SELECT id, email, nom, prenom, niveau, localisation, pays, CONCAT_WS(' ',secteur1, secteur2, secteur3) AS sector, secteur1, secteur2, secteur3, photo, titre_cv1, titre_cv2, titre_cv3, cv1, cv2, cv3, langue_cv1, langue_cv2, langue_cv3 FROM infos WHERE niveau LIKE '%"+b+"%' AND  localisation LIKE '%"+c+"%' AND pays LIKE '%"+d+"%' AND secteur1 LIKE '%"+e+"%' AND MATCH(titre_cv1) AGAINST ('"+a+"')";
		//String sql = "SELECT id, email, nom, prenom, niveau, localisation, pays, CONCAT_WS(' ',secteur1, secteur2, secteur3) AS sector, secteur1, secteur2, secteur3, photo, titre_cv1, titre_cv2, titre_cv3, cv1, cv2, cv3, langue_cv1, langue_cv2, langue_cv3 FROM infos WHERE niveau = '"+b+"'";
		//String sql = "SELECT * FROM infos WHERE titre_cv1 LIKE '%"+a+"%'";
		String sql = "SELECT nom, prenom, niveau, localisation, pays, secteur1, secteur2, secteur3, photo, cv1, cv2, cv3, langue_cv1, langue_cv2, langue_cv3 FROM infos WHERE (niveau ='"+b+"' AND  localisation = '"+c+"' AND pays = '"+d+"' AND secteur1 = '"+e+"') OR CONCAT_WS(' ',titre_cv1, titre_cv2, titre_cv3) LIKE '%"+a+"%'";
 
 
		Vector<String> columnNames = new Vector<String>();
		Vector<Vector<Object>> data = new Vector<Vector<Object>>();
		/*JFrame frame = new JFrame();
		frame.setTitle("Application");
		JPanel panel = new JPanel();*/
 
 
		try {
			PreparedStatement stmt = conn.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			ResultSetMetaData metaData = rs.getMetaData();
			int columns = metaData.getColumnCount();
 
			//if (rs.next()) {
			for (int i = 1; i <= columns; i++) {
				columnNames.addElement(metaData.getColumnName(i));
 
				if (rs.next()) {
 
					Vector<Object> row = new Vector<Object>(columns);
 
					for (int j = 1; j <= columns; j++) {
						row.addElement(rs.getObject(j));
					} data.addElement(row);
					System.out.println(row);
				} 
			} 
 
 
		} catch (Exception e1) {
			System.err.println(e1);
		}
 
		t = new JTable(data, columnNames);
		t.setSize(150, 150);
		t.setVisible(true);
		TableColumn column;
		for (int i = 0; i < t.getColumnCount(); i++) {
			column = t.getColumnModel().getColumn(i);
			column.setMaxWidth(250);
 
		}
 
		//JScrollPane scrollPane = new JScrollPane(t);
		//scrollPane.setBounds(40, 40, 100, 100);
		//f.getContentPane().add(scrollPane); 
		//p.add(scrollPane);
		//p.setVisible(true);
		//f.add(p); //adding panel to the frame
		//f.setSize(500, 500); //setting frame size
		//f.setVisible(true); //setting visibility true*/
 
		ConnectionManager.getInstance().close();
 
	}
 
}