Remplir une JTable a partir d'une BDD
Résolu/Fermé
rock in the air
Messages postés
34
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
29 avril 2008
-
21 avril 2008 à 16:38
scorpion_20 Messages postés 6 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010 - 13 janv. 2010 à 17:37
scorpion_20 Messages postés 6 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010 - 13 janv. 2010 à 17:37
A voir également:
- Remplir une JTable a partir d'une BDD
- Organigramme a remplir word - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Créer une vidéo à partir de photos windows 10 - Guide
- Créer une icone à partir d'une image - Guide
5 réponses
rock in the air
Messages postés
34
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
29 avril 2008
11
22 avril 2008 à 16:04
22 avril 2008 à 16:04
C'est bon ca marche :
J'ai remplacé le type objet:
Object tab1[] = {""};
Object tab2[] = {""};
Object tab3[] = {""};
//Chacune des colonnes de la JTable...
tab1 = new Object[31];
tab2 = new Object[31];
tab3 = new Object[31];
par des listes:
List liste1 = new ArrayList();
List liste2 = new ArrayList();
List liste3 = new ArrayList();
List liste4 = new ArrayList();
Puis j'ai stocké le résultat de ma requete dans :
//les colonnes ou on va mettre les données
Integer temp1 = new Integer(num_prog % 1000);
String temp2 = Date_enf;
Integer temp3 = new Integer(Nb_Bloc);
Integer temp4= new Integer(Cumul);
Puis dans une boucle je les ajoute dans mes listes déclarées précédemment:
//on ajoute les lignes récupérées dans la liste
liste1.add(temp1);
liste2.add(temp2);
liste3.add(temp3);
liste4.add(temp4);
Et finalement j'ajoute dans mes colonnes:
//Ajout des colonnes précédemment déclarées
modell.addColumn("No Prog", liste1.toArray());
modell.addColumn("Date", liste2.toArray());
modell.addColumn("Nb Blocs/pg", liste3.toArray());
modell.addColumn("Nb Blocs/Cumul", liste4.toArray());
Voilà!!
J'ai remplacé le type objet:
Object tab1[] = {""};
Object tab2[] = {""};
Object tab3[] = {""};
//Chacune des colonnes de la JTable...
tab1 = new Object[31];
tab2 = new Object[31];
tab3 = new Object[31];
par des listes:
List liste1 = new ArrayList();
List liste2 = new ArrayList();
List liste3 = new ArrayList();
List liste4 = new ArrayList();
Puis j'ai stocké le résultat de ma requete dans :
//les colonnes ou on va mettre les données
Integer temp1 = new Integer(num_prog % 1000);
String temp2 = Date_enf;
Integer temp3 = new Integer(Nb_Bloc);
Integer temp4= new Integer(Cumul);
Puis dans une boucle je les ajoute dans mes listes déclarées précédemment:
//on ajoute les lignes récupérées dans la liste
liste1.add(temp1);
liste2.add(temp2);
liste3.add(temp3);
liste4.add(temp4);
Et finalement j'ajoute dans mes colonnes:
//Ajout des colonnes précédemment déclarées
modell.addColumn("No Prog", liste1.toArray());
modell.addColumn("Date", liste2.toArray());
modell.addColumn("Nb Blocs/pg", liste3.toArray());
modell.addColumn("Nb Blocs/Cumul", liste4.toArray());
Voilà!!
Utilisateur anonyme
22 avril 2008 à 11:15
22 avril 2008 à 11:15
Développe un peu plus au lieu de dire "Ca marche pas". Explique nous où est le problème (Message d'erreur, non affichage de la table, etc.)
Utilisateur anonyme
21 avril 2008 à 16:56
21 avril 2008 à 16:56
Utilise la méthode addRow sur ton modèle :
Object[] temp = {new Integer(Nb_Bloc), ...};modell.addRow(temp);Et après ta boucle tu ajoutes :
table.setModel(modell);Je pense que ça devrait le faire ;-)
rock in the air
Messages postés
34
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
29 avril 2008
11
22 avril 2008 à 08:39
22 avril 2008 à 08:39
ca ne marche toujours pas!!!
scorpion_20
Messages postés
6
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
13 janv. 2010 à 14:36
13 janv. 2010 à 14:36
Bonjour
j'ai un problem au niveau de jTAble
je veux remplir le jTable avec un requet oracle
j'ai glisser le jTable dans ma forme et puis j'ai tap le code sous un ActionPerformed
quand j'ai glisse le jTable il me donne automatiquement les parametres de la table j'ai renomme les colonnes est quand j'ai essayer de remplir la table au niveau de while{}
il me donne une erreur parceque j'ai pas le nom de la table j'ai just le nom jTAble0
while(rs.next()){
jTable0[i][0]=rs.getString(1);//il me donne une erreur
}
donc je veux renommer le jTable pour remplir la table mais j'ai pas compris comment
MERCI de m'aider, c'est urgent!!!
Merci d'avace
j'ai un problem au niveau de jTAble
je veux remplir le jTable avec un requet oracle
j'ai glisser le jTable dans ma forme et puis j'ai tap le code sous un ActionPerformed
quand j'ai glisse le jTable il me donne automatiquement les parametres de la table j'ai renomme les colonnes est quand j'ai essayer de remplir la table au niveau de while{}
il me donne une erreur parceque j'ai pas le nom de la table j'ai just le nom jTAble0
while(rs.next()){
jTable0[i][0]=rs.getString(1);//il me donne une erreur
}
donc je veux renommer le jTable pour remplir la table mais j'ai pas compris comment
MERCI de m'aider, c'est urgent!!!
Merci d'avace
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
scorpion_20
Messages postés
6
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
13 janv. 2010 à 17:37
13 janv. 2010 à 17:37
Bonjour
j'ai un problem au niveau de jTAble
je veux remplir le jTable avec un requet oracle
j'ai glisser le jTable dans ma forme et puis j'ai tap le code sous un ActionPerformed
quand j'ai glisse le jTable il me donne automatiquement les parametres de la table j'ai renomme les colonnes est quand j'ai essayer de remplir la table au niveau de while{}
il me donne une erreur parceque j'ai pas le nom de la table j'ai just le nom jTAble0
Voici mon code :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import org.dyno.visual.swing.layouts.Bilateral;
import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;
//VS4E -- DO NOT REMOVE THIS LINE!
public class info_compte extends JFrame {
private static final long serialVersionUID = 1L;
private JTable jTable0;
private JScrollPane jScrollPane0;
private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
public info_compte() {
initComponents();
}
private void initComponents() {
setLayout(new GroupLayout());
add(getJScrollPane0(), new Constraints(new Bilateral(3, 0, 22), new Leading(2, 150, 10, 10)));
setSize(540, 240);
}
private JScrollPane getJScrollPane0() {
if (jScrollPane0 == null) {
jScrollPane0 = new JScrollPane();
jScrollPane0.setViewportView(getJTable0());
}
return jScrollPane0;
}
private JTable getJTable0() {
if (jTable0 == null) {
jTable0 = new JTable();
jTable0.setModel(new DefaultTableModel(new Object[1][6] , new String[] { "Nom", "Prenom","Serial carte","Date Dernier retrait","Retrait","Solde" }) {
private static final long serialVersionUID = 1L;
Class<?>[] types = new Class<?>[] { Object.class, Object.class, };
public Class<?> getColumnClass(int columnIndex) {
return types[columnIndex];
}
});
}
return jTable0;
}
private static void installLnF() {
try {
String lnfClassname = PREFERRED_LOOK_AND_FEEL;
if (lnfClassname == null)
lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lnfClassname);
} catch (Exception e) {
System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
+ " on this platform:" + e.getMessage());
}
}
/**
* Main entry of the class.
* Note: This class is only created so that you can easily preview the result at runtime.
* It is not expected to be managed by the designer.
* You can modify it as you like.
* @throws ClassNotFoundException
* @throws SQLException
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
Class cl=Class.forName("oracle.jdbc.driver.OracleDriver");
String c="jdbc:oracle:thin:@localhost:1521:orcl";
Connection con =DriverManager.getConnection(c,"SYSTEM","s123");
int i=0;
CachedRowSet rowset;
rowset=(CachedRowSet) cl.newInstance();
try{
rowset.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);
rowset.setConcurrency(ResultSet.CONCUR_UPDATABLE);
rowset.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
rowset.setUsername("SYSTEM");
rowset.setPassword("s123");
rowset.setCommand("select clients.nom,clietns.prenom,carte.serial_carte,carte.date_dernier_retrait,carte.retrai,compte.solde from clients,carte,compte where clients.id_client=comte.id_client and compte.serial_carte=carte.serial_carte and carte.serial_carte='vf14552' ");
rowset.execute();
while (rowset.next()){
//jTable0[i][0]=rowset.getString(1);//le preblem au niveau de nom du jTable
// jTable0[i][1]=rowset.getString(2);//il me donne une errur du nom
// jTable0[i][2]=rowset.getInt(3);
// jTable0[i][3]=rowset.getString(4);
// jTable0[i][4]=rowset.getInt(5);
// jTable0[i][5]=rowset.getInt(6);
i++;
}
}catch(SQLException e){
e.printStackTrace();
}
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
info_compte frame = new info_compte();
frame.setDefaultCloseOperation(info_compte.EXIT_ON_CLOSE);
frame.setTitle("info_compte");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
donc je veux renommer le jTable pour remplir la table mais j'ai pas compris comment
MERCI de m'aider, c'est urgent!!!
Merci d'avace
j'ai un problem au niveau de jTAble
je veux remplir le jTable avec un requet oracle
j'ai glisser le jTable dans ma forme et puis j'ai tap le code sous un ActionPerformed
quand j'ai glisse le jTable il me donne automatiquement les parametres de la table j'ai renomme les colonnes est quand j'ai essayer de remplir la table au niveau de while{}
il me donne une erreur parceque j'ai pas le nom de la table j'ai just le nom jTAble0
Voici mon code :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import org.dyno.visual.swing.layouts.Bilateral;
import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;
//VS4E -- DO NOT REMOVE THIS LINE!
public class info_compte extends JFrame {
private static final long serialVersionUID = 1L;
private JTable jTable0;
private JScrollPane jScrollPane0;
private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
public info_compte() {
initComponents();
}
private void initComponents() {
setLayout(new GroupLayout());
add(getJScrollPane0(), new Constraints(new Bilateral(3, 0, 22), new Leading(2, 150, 10, 10)));
setSize(540, 240);
}
private JScrollPane getJScrollPane0() {
if (jScrollPane0 == null) {
jScrollPane0 = new JScrollPane();
jScrollPane0.setViewportView(getJTable0());
}
return jScrollPane0;
}
private JTable getJTable0() {
if (jTable0 == null) {
jTable0 = new JTable();
jTable0.setModel(new DefaultTableModel(new Object[1][6] , new String[] { "Nom", "Prenom","Serial carte","Date Dernier retrait","Retrait","Solde" }) {
private static final long serialVersionUID = 1L;
Class<?>[] types = new Class<?>[] { Object.class, Object.class, };
public Class<?> getColumnClass(int columnIndex) {
return types[columnIndex];
}
});
}
return jTable0;
}
private static void installLnF() {
try {
String lnfClassname = PREFERRED_LOOK_AND_FEEL;
if (lnfClassname == null)
lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lnfClassname);
} catch (Exception e) {
System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
+ " on this platform:" + e.getMessage());
}
}
/**
* Main entry of the class.
* Note: This class is only created so that you can easily preview the result at runtime.
* It is not expected to be managed by the designer.
* You can modify it as you like.
* @throws ClassNotFoundException
* @throws SQLException
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
Class cl=Class.forName("oracle.jdbc.driver.OracleDriver");
String c="jdbc:oracle:thin:@localhost:1521:orcl";
Connection con =DriverManager.getConnection(c,"SYSTEM","s123");
int i=0;
CachedRowSet rowset;
rowset=(CachedRowSet) cl.newInstance();
try{
rowset.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);
rowset.setConcurrency(ResultSet.CONCUR_UPDATABLE);
rowset.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
rowset.setUsername("SYSTEM");
rowset.setPassword("s123");
rowset.setCommand("select clients.nom,clietns.prenom,carte.serial_carte,carte.date_dernier_retrait,carte.retrai,compte.solde from clients,carte,compte where clients.id_client=comte.id_client and compte.serial_carte=carte.serial_carte and carte.serial_carte='vf14552' ");
rowset.execute();
while (rowset.next()){
//jTable0[i][0]=rowset.getString(1);//le preblem au niveau de nom du jTable
// jTable0[i][1]=rowset.getString(2);//il me donne une errur du nom
// jTable0[i][2]=rowset.getInt(3);
// jTable0[i][3]=rowset.getString(4);
// jTable0[i][4]=rowset.getInt(5);
// jTable0[i][5]=rowset.getInt(6);
i++;
}
}catch(SQLException e){
e.printStackTrace();
}
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
info_compte frame = new info_compte();
frame.setDefaultCloseOperation(info_compte.EXIT_ON_CLOSE);
frame.setTitle("info_compte");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
donc je veux renommer le jTable pour remplir la table mais j'ai pas compris comment
MERCI de m'aider, c'est urgent!!!
Merci d'avace