rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Remplir une JTable a partir d'une BDD

rock in the air, le lundi 21 avril 2008 à 16:38:54
Bonjour,

J'ai une base de donnée et j'essaie de faire une procédure qui récupère le resultat d'une requête et l'affiche dans une Jtable.
-Langage de prog: java.
-IDE: eclipse 3.0.2.
-BDD: oracle 10g.

Mais j'ai un souci je n'arrive pas car il y a un conflit de type, j'arrive pas a transtyper un type int en Object.
La ligne en question est indiquée ci dessous dans le code de ma procédure.

//fonction qui va afficher le tableau
public void afficherTableau()
{
//on fait disparaitre les boutons inutiles
btnExporter.setVisible(false);
btnImprimer.setVisible(false);

pnlPreview.removeAll();
pnlPreview.repaint();
pnlPreview.validate();

DefaultTableModel modell = new DefaultTableModel();
JTable table = new JTable(modell);
//les colonnes ou on va mettre les données
Object tab1[] = {""};
Object tab2[] = {""};
Object tab3[] = {""};
//Chacune des colonnes de la JTable...
tab1 = new Object[31];
tab2 = new Object[31];
tab3 = new Object[31];
//Ajout des colonnes précédemment déclarées
modell.addColumn("No Prog", tab1);
modell.addColumn("Date", tab2);
modell.addColumn("Nb Blocs/pg", tab3);
//table.setAlignmentX(2);
//table.setAlignmentY(3);
modell.addColumn("No Prog", tab1);
modell.addColumn("Date", tab2);
modell.addColumn("Nb Blocs/pg",tab3);
//on force la taille du tableau
table.getColumnModel().getColumn(0).setPreferredWidth(100);
table.getColumnModel().getColumn(1).setPreferredWidth(100);

//ajout de la table dans le form
JScrollPane JSP = new JScrollPane(table);
//System.out.println("la hauteur est de:"+JSP.getHeight()+" la largeur ="+JSP.getWidth());
JSP.setSize(pnlPreview.getSize());
JSP.setPreferredSize(new Dimension(pnlContenuPreview.getSize().width, pnlContenuPreview.getSize().height-10));
JSP.setLocation(2,40);

//System.out.println("x:"+JSP.getX()+"y"+JSP.getY());

//JScrollPane myScrollPane = new JScrollPane(table);
JSP.setVisible(true);
PreparedStatement PS=null;
ResultSet RS=null;
final String QUERY_INDIC_TPS_SEJOUR_CSO=
"SELECT PROGRAMME.NUM_PROG,"+
"TO_CHAR(MIN(COMMANDE.PREM_ENF),'DD/MM/YYYY'), "+
"SUM (COMMANDE.QBL)"+
"FROM PROGRAMME, COMMANDE"+
"WHERE ( (PROGRAMME.NUM_PROG = COMMANDE.NUM_PROG)"+
"AND (PROGRAMME.NUM_CONT= ?)"+
"AND (TO_CHAR((COMMANDE.PREM_ENF), 'YYYY')= ?))"+
"GROUP BY PROGRAMME.NUM_PROG";
int conteneur=0;
int annee=0;


try{

//on récupère les variables passés en paramètre
PS=getConnection().prepareStatement(QUERY_INDIC_TPS_SEJOUR_CSO);
PS.setInt(1, conteneur);
PS.setString(2, new Integer(annee).toString());

RS=PS.executeQuery();
while (RS.next()){

//on stocke le résultat de la requête dans des variables
int num_prog=RS.getInt(1);
java.sql.Timestamp Date_enf=RS.getTimestamp(2);
int Nb_Bloc=RS.getInt(3);
//===>Comment ajouter les données dans la table sachant qu'il y a un problème de transtypage de int en Object??!!!

}
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erreur : "+e);
System.err.println("Erreur lors de l'execution d'un traitement SQL!");
e.printStackTrace();
}
finally
{
close(PS, RS);
}


this.add(JSP);
}

MERCI de m'aider, c'est urgent!!!

Miriam.
Configuration: Windows XP
Firefox 2.0.0.3
Répondre à rock in the air  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
=[Cvrd]=Tassin, le lundi 21 avril 2008 à 16:56:06
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 ;-) -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --
Répondre à =[Cvrd]=Tassin

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
rock in the air, le mardi 22 avril 2008 à 08:39:25
ca ne marche toujours pas!!!
Répondre à rock in the air

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
=[Cvrd]=Tassin, le mardi 22 avril 2008 à 11:15:54
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.) -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --
Répondre à =[Cvrd]=Tassin

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 rock in the air, le mardi 22 avril 2008 à 16:04:09
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à!!
Répondre à rock in the air
Remplacement d 1 ligne ds un fichier (Résolu)Bonjour, J'essaye d'écrire une fonction dans un script shell (ksh) qui remplace une partie d'une ligne par une autre. La ligne a remplacer commence par la chaine libdir= mais j'ai qques difficultés. ma fonction prend en paramètre... www.commentcamarche.net/forum/affich-5752134-remplacement-d-1-ligne-ds-un-fichier
La cle de debridage de ebp comptabilite (Résolu)Bonjour, je suis un jeune comptable, celui que j'ai remplacé est parti avec le mot de passe puissiez-vous m'aider à trouver la clé de debridage de ebp comptabilité 2007 www.commentcamarche.net/forum/affich-6379606-la-cle-de-debridage-de-ebp-comptabilite
Access formulaire (Résolu)Salut à tous, J'ai un petit prob ... J'ai créé un formulaire en Access...J'ai sur ce formulaire un menu déroulant qui est rempli à partir d'un cham d'une table de ma DB, et j'ai une zone d'édition. Ce que je... www.commentcamarche.net/forum/affich-986295-access-formulaire
Redéfinir mon dual boot (Résolu)Bonjour, J'ai actuellement un dual boot XP/Mandriva 2007, je souhaiterais redéfinir ma partition mandriva en kubuntu que je voudrais tester.Seulement quand je ne peux booter sur le cd kubuntu ? est ce que pour remplacer ma partition , je dois... www.commentcamarche.net/forum/affich-5338214-redefinir-mon-dual-boot
Script pour remplir une BDD Mysql (Résolu)Bonjour, je recherche un script me permettant de remplir une table dans une base Mysql à partir d'un fichier texte. En effet, j'ai un fichier texte contenant des termes et leurs identifiant et je dois remplir une table de ma base avec ces... www.commentcamarche.net/forum/affich-550185-script-pour-remplir-une-bdd-mysql
Possible de créer une Bdd à parti d'un SQL ? (Résolu)Bonjour à tous, J'ai acheté un livre pour apprendre le PHP, en plus des forums, et dans ce livre, avec CDrom répartis en chapître, il y a des requêtes (*.sql). Je voudrais savoir si on pouvait recréer la Bdd à partir d'une requête (.sql).... www.commentcamarche.net/forum/affich-1841316-possible-de-creer-une-bdd-a-parti-d-un-sql
Générique Ventilateur lubrifié à vie - 70x70x15Générique Ventilateur lubrifié à vie - 70x70x15,x 70 70 x 70x 70x ,Ventilateur de remplacement à hautes performances avec palier central étanche lubrifié à vie et Extra silencieux (moins de 30 dBA).. Pas de friction entre les parties en mouvement garantis www.commentcamarche.net/guide-achat/generique-ventilateur-lubrifie-a-vie-70x70x15-400843413-fiche-technique
Générique Ventilateur lubrifié à vie - 60x60x10Générique Ventilateur lubrifié à vie - 60x60x10,x 60 60 x 60x 60x ,Ventilateur de remplacement à hautes performances avec palier central étanche lubrifié à vie et Extra silencieux (moins de 19 dBA).. Pas de friction entre les parties en mouvement garantis www.commentcamarche.net/guide-achat/generique-ventilateur-lubrifie-a-vie-60x60x10-400843401-fiche-technique
Générique Ventilateur lubrifié à vie - 80x80x10Générique Ventilateur lubrifié à vie - 80x80x10,x 80 80 x 80x 80x ,Ventilateur de remplacement à hautes performances avec palier central étanche lubrifié à vie et Extra silencieux (moins de 20 dBA).. Pas de friction entre les parties en mouvement garantis www.commentcamarche.net/guide-achat/generique-ventilateur-lubrifie-a-vie-80x80x10-400843437-fiche-technique
Knoppix 5.1La nouvelle version de Knoppix est disponible en version 5.1. Quelles nouveautés ? - Le système FUSE 2.6.1 remplace UnionFS. - Les effets 3D (c'est à la mode) ont été ajoutés grâce à AIGLX. - Les partitions en NTFS sont désormais totalement... www.commentcamarche.net/actualites/knoppix-5-1-2566075-actualite.php3
VBScript - Les constantes Une constante est un nom, facilement mémorisable, remplaçant une valeur (nombre, chaîne, etc.) qui ne change pas. L'objectif d'une constante est d'une part de permettre de rendre un programme plus lisible, d'autre part de faciliter sa maintenance car... www.commentcamarche.net/vbscript/vbs-constantes.php3
Toutes les réponses pour « Remplir une JTable a partir d'une BDD »