Ajouté dynamiquement JTable pas l'affichage de
Java Débutant ici. J'ai une JFrame que j'ai ajouté à mon projet netbeans, et j'ai ajouté de la méthode suivante, ce qui crée une JTable. Le problème est, pour quelque raison que quand j'appelle cette méthode, la JTable n'est pas affichée. Des suggestions?
public void showFromVectors(Vector colNames, Vector data) {
jt = new javax.swing.JTable(data, colNames);
sp = new javax.swing.JScrollPane(jt);
//NB: "this" refers to my class DBGridForm, which extends JFrame
this.add(sp,java.awt.BorderLayout.CENTER);
this.setSize(640,480);
}
La méthode est appelée dans le contexte suivant:
DBGridForm gf = new DBGridForm(); //DBGridForm extends JFrame
DBReader.outMatchesTable(gf);
gf.setVisible(true);
... où DBReader.outMatchesTable() est définie comme
static public void outMatchesTable(DBGridForm gf) {
DBReader ddb = new DBReader();
ddb.readMatchesTable(null);
gf.showFromVectors(ddb.lastRsltColNames, ddb.lastRsltData);
}
Ma conjecture est que je suis donnant sur quelque chose, que ce soit sur la balançoire classes, je suis à l'aide, ou à propos de Java. Des idées?
Vous devez vous connecter pour publier un commentaire.
"ce" dans votre contexte n'est pas clair. Est-il à l'intérieur d'une applet? une JFrame?
Vous avez peut-être eu un problème de mise en page, assurez-vous que vous avez appelé setLayout sur votre classe avec une nouvelle borderlayout.
Dans une application swing, vous voulez les utiliser getRootContentPane().ajouter() à la place d'un raw ajouter(), selon la version.
Java tutoriel sur l'ajout de haut-niveau contenu: http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html
Si vous n'êtes pas en cours d'exécution sur l'événement de fil, il pourrait être un problème, j'ai vu que la cause des trucs à ne pas afficher.
Si ce code est appelée en réponse à une AWT événement (clic de souris, appuyez sur le bouton, ...) alors ce n'est pas le problème, mais si c'est toujours le même fil que le démarrage de votre application, ou de ce code est en cours d'exécution hors d'une minuterie, pourrait très bien être.