pb avec un jtable qui ne s'affiche pas - Java - Programmation
MarshPosté le 21-01-2005 à 11:57:41
Bonjour à tous, Tout d'abord je vous informe que j'ai déjà posté ce message sur le forum de developpez.com mais comme personne ne me répond je vais vous posez la question également. Je réalise un programme qui contient en Jpanel dans lequel se trouve une jtable. Les colonnes sont remplies d'après un fichier. Voici mon code
public Panel_haut(int longueur_panel_haut,int hauteur_panel_haut,int position_horizontale_panel_haut, int position_verticale_panel_haut,String nomB, int longueur_bouton, int largeur_bouton, int position_horizontale_bouton, int position_verticale_bouton, int écart_vertical,int écart_horizontal, int longueur_panel_bouton,int hauteur_panel_bouton, int position_horizontale_panel_bouton, int position_verticale_panel_bouton) throws IOException {super(longueur_panel_haut,hauteur_panel_haut,position_horizontale_panel_haut, position_verticale_panel_haut, nomB, longueur_bouton, largeur_bouton, position_horizontale_bouton, position_verticale_bouton, écart_vertical,écart_horizontal, longueur_panel_bouton,hauteur_panel_bouton, position_horizontale_panel_bouton, position_verticale_panel_bouton);
String nomFichier="fichier.txt";
table=new Tableau(nomFichier);
this.add(table);
}
Puis celui du tableau
Code :
package boutons;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;
publicclass Tableau extends JPanel {
Modèle modèle;
public Tableau(String fichier) {
JTable tableau;
//fonte
Font f=new Font("SanSerif",Font.PLAIN,24);
setFont(f);
//gestionnaire de positionnement
setLayout(new BorderLayout());
//construction du modèle de remplissage à partir du fichier
modèle = new Modèle(fichier);
//création du tableau
tableau = new JTable();
tableau.setModel(modèle);
tableau.createDefaultColumnsFromModel();
//scroll
JScrollPane scrollpane=new JScrollPane(tableau);
add(scrollpane);
}
public Dimension getPreferredSize() {
returnnew Dimension(400, 300);
}
}
et enfin celui du modèle de tableau dans lequel je vais lire les données du fichier
Code :
package boutons;
import javax.swing.*;
import javax.swing.table.*;
import java.io.*;
import java.util.*;
publicclass Modèle extends AbstractTableModel {
public Vector donnees; //données
public Vector nom_colonnes; //noms de colonnes
public String fichier; //nom du fichier de données
public Modèle(String f) {
fichier=f;
initVectors();
}
publicvoid initVectors() {
donnees=new Vector();
nom_colonnes=new Vector();
//String fichier = "fichier.txt";
String ligne_lue ;
try {
BufferedReader br = new BufferedReader( new FileReader(fichier));
ligne_lue = br.readLine();
StringTokenizer st2 = new StringTokenizer(ligne_lue,"," );
while (st2.hasMoreTokens())
{System.out.println(st2.nextToken());
nom_colonnes.addElement(st2.nextToken());
}
while ((ligne_lue=br.readLine()) != null){
StringTokenizer st1 = new StringTokenizer(ligne_lue,"," );
while (st1.hasMoreTokens()){
System.out.println(st1.nextToken());
donnees.addElement(st1.nextToken());
}
}
br.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
Je n'ai aucune erreur dans mon programme et mon System.out.println(st1.nextToken()); affiche bien les données de mon fichier. Seulement mon JTable ne s'affiche pas et j'ai sûrement oublié un truc tout bête. Quelqu'un saurait-il de quoi il s'agit ?
Marsh Posté le 21-01-2005 à 11:57:41
Bonjour à tous,
Tout d'abord je vous informe que j'ai déjà posté ce message sur le forum de developpez.com mais comme personne ne me répond je vais vous posez la question également.
Je réalise un programme qui contient en Jpanel dans lequel se trouve une jtable. Les colonnes sont remplies d'après un fichier.
Voici mon code
code du Jpanel
Puis celui du tableau
et enfin celui du modèle de tableau dans lequel je vais lire les données du fichier
Je n'ai aucune erreur dans mon programme et mon System.out.println(st1.nextToken()); affiche bien les données de mon fichier.
Seulement mon JTable ne s'affiche pas et j'ai sûrement oublié un truc tout bête.
Quelqu'un saurait-il de quoi il s'agit ?
Merci