Java – Dynamically added JTable not displaying


Java Newbie here. I have a JFrame that I added to my netbeans project, and I've added the following method to it, which creates a JTable. Problem is, for some reason when I call this method, the JTable isn't displayed. Any 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

The method is called in the following context:

DBGridForm gf = new DBGridForm(); //DBGridForm extends JFrame

… where DBReader.outMatchesTable() is defined as

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

My guess is I'm overlooking something, either about the swing classes I'm using, or about Java. Any ideas?

Best Solution

"this" in your context is unclear. Is it inside an applet? a JFrame?

You may be having a layout issue, make sure you've called setLayout on your class with a new borderlayout.

In a swing application, you'd want to use getRootContentPane().add() instead of a raw add(), depending on the version.

Java tutorial on adding top-level content:

Related Question