Question

Newbie Java ici. J'ai ajouté un JFrame à mon projet netbeans, auquel j'ai ajouté la méthode suivante, qui crée un JTable. Le problème est que, pour une raison quelconque, lorsque j'appelle cette méthode, la table 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éfini comme

static public void outMatchesTable(DBGridForm gf) {
    DBReader ddb = new DBReader();
    ddb.readMatchesTable(null);
    gf.showFromVectors(ddb.lastRsltColNames, ddb.lastRsltData);
}

Je suppose que je néglige quelque chose, que ce soit à propos des classes de swing que j'utilise ou de Java. Des idées?

Était-ce utile?

La solution

"this" dans votre contexte n'est pas clair. Est-ce à l'intérieur d'une applet? un JFrame?

Vous rencontrez peut-être un problème de mise en page. Assurez-vous d'avoir appelé setLayout sur votre classe avec une nouvelle bordure.

Dans une application swing, vous voudriez utiliser getRootContentPane (). add () au lieu d’un add () brut, selon la version.

Tutoriel Java sur l'ajout de contenu de niveau supérieur: http: //java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html

Autres conseils

Si vous n’exécutez pas sur le fil de l’événement, il se peut que ce soit un problème - j’ai déjà vu cette information ne pas s'afficher.

Si ce code est appelé en réponse à un événement AWT (clic de souris, appui sur un bouton, ...), ce n'est pas le problème, mais si c'est toujours le même fil qui a démarré votre application, ou si ce code est exécuté à partir d'un minuterie, pourrait très bien être.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top