I cant get my gui to show the Jtable, why i dont know and i dont get any error and when i print something to the screen i get 9 colum. so i get data. but what i'm doing wrong i have no idea about that.
My GUIOdreHandler looks like this
public GUIOrdreHandler(){
KaldSQL ks = new KaldSQL();
ResultSet rs;
}
public static DefaultTableModel buildTableModel(ResultSet rs)
throws SQLException {
java.sql.ResultSetMetaData metaData = rs.getMetaData();
// names of columns
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount; column++) {
columnNames.add(metaData.getColumnName(column));
System.out.println(columnCount);
}
// data of the table
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
return new DefaultTableModel(data, columnNames);
}
And my GUIHentOrdre looks like this
public GUIHentOrdre(){
try {
con = ks.connectNow();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JPanel info = new JPanel();
info.setLayout(new BorderLayout());
button = new JButton("button");
info.add(button, BorderLayout.CENTER);
add(button);
ResultSet rs = ks.Hentalleordreliste(con);
GUIOrdreHandler gh = new GUIOrdreHandler();
try {
table = new JTable(gh.buildTableModel(rs));
System.out.println(table);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
info.add(table, BorderLayout.CENTER);
add(table);
}
}
I have tried anything google, book northing works, so please help me :D
only about mistakes in your code
JPanel info = new JPanel();
info.setLayout(new BorderLayout());
button = new JButton("button");
info.add(button, BorderLayout.CENTER);
add(button);
remove code line about
add(button);
to the (code not exactly talking about)change
info.add(button, BorderLayout.CENTER);
to theNORTH
orSOUTH
you not added
JTable
(inJScrollPane
) to theJPanel
correctly
pseudo code
JPanel info = new JPanel();
info.setLayout(new BorderLayout());
button = new JButton("button");
info.add(button, BorderLayout.SOUTH);
JTable table = new JTable (ClassOrVoidOrModelNameReturnsTableModel)
JScrollPane scroll = new JScrollPane(table)
info.add(scroll, BorderLayout.CENTER);
but this nothing above to solve something, because your issue should be some exception came from
JDBC
don't to create
JComponent
s insidetry
-catch
block, prepare thisObject
before, better could be aslocal variable
don't to create
XxxModel
forJComponent
s insidetry
-catch
block, prepare thisObject
before, better could be aslocal variable
intialize
XxxModel
and itsJComponent
, then to load data fromJDBC
to theXxxModel
add
rs.close()
to thefinally
block (try
-catch
-finally
)
don't reinvent the wheel, use
来源:https://stackoverflow.com/questions/13732705/i-cant-get-my-jtable-to-show-anything