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 this.add(sp,java.awt.BorderLayout.CENTER); this.setSize(640,480); }
The method is called in the following context:
DBGridForm gf = new DBGridForm(); //DBGridForm extends JFrame DBReader.outMatchesTable(gf); gf.setVisible(true);
… where DBReader.outMatchesTable() is defined as
static public void outMatchesTable(DBGridForm gf) { DBReader ddb = new DBReader(); ddb.readMatchesTable(null); 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?
‘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: http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html