我不能让我的gui显示Jtable,为什么我不知道,我没有得到任何错误,当我打印一些东西到屏幕上我得到9列。所以我得到了数据。但是我做错了什么我不知道。
我的GUIOdreHandler看起来像这样
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);
}
我的GUIHentOrdre看起来像这样
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);
}
}
我试过谷歌,预订北方作品,所以请帮助我 :d
答案 0 :(得分:1)
仅代码中的错误
JPanel info = new JPanel();
info.setLayout(new BorderLayout());
button = new JButton("button");
info.add(button, BorderLayout.CENTER);
add(button);
删除关于add(button);
的代码行(代码不完全在谈论)
将info.add(button, BorderLayout.CENTER);
更改为NORTH
或SOUTH
您没有将JTable
(JScrollPane
)正确地添加到JPanel
伪代码
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);
但上面没有什么可以解决的问题,因为你的问题应该来自JDBC
不要在JComponent
- try
块内创建catch
,之前准备此Object
,最好是local variable
< / p>
不要为XxxModel
- JComponent
块中的try
创建catch
,之前准备此Object
,最好是local variable
初始化XxxModel
及其JComponent
,然后将数据从JDBC
加载到XxxModel
将rs.close()
添加到finally
块(try
- catch
- finally
)
不要重新发明轮子,请使用