Java Débutant ici. J'ai un JFrame que j'ai ajouté à mon projet netbeans, et j'ai ajouté la méthode suivante, qui crée un JTable. Le problème est, pour une raison quelconque lorsque j'appelle cette méthode, le JTable n'est pas affiché. Aucune suggestion?Dynamiquement ajouté JTable ne pas afficher
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);
}
Je suppose que je suis sur quelque chose , soit sur les classes de swing que j'utilise, ou sur Java. Des idées?
"this" fait référence à DBGridForm, qui étend JFrame. Je pensais que c'était évident quand j'ai dit que je (paraphrasant) "créé un JFrame avec netbeans, et ajouté la méthode suivante". On dirait que ce n'était pas aussi évident que je l'avais pensé – Graza
OK, en appelant "this.setLayout (new java.awt.BorderLayout());" avant d'ajouter le volet de défilement a fait l'affaire. Je pense que la disposition par défaut ajoutée par netbeans doit être quelque chose de différent - c'est vraiment la première fois que j'ai utilisé netbeans, toute expérience précédente faisait des choses à partir de zéro ... – Graza
La mise en page par défaut est une flowlayout, je pense. – davenpcj