我在我的GUI應用程序中顯示我的數據庫填充JTable時遇到問題。如何用我的嵌入式數據庫填充我的JTable?
我的代碼如下,並創建一個面板的GUI,然後創建我的JTable並將其添加到我的應用程序。然後我運行一個可能填充表的方法。填充完成後,沒有任何顯示。
解剖我的代碼,我導致相信某處導致數據不解析到我的表中,出於某種未知的原因,這就是我來到這裏的原因。
在一個按鈕的點擊,該代碼需要:
JTable tigerTable = new JTable();
JPanel centerPanel = new JPanel();
centerPanel.add(tigerTable, new GridBagConstraints());
FillTable(tigerTable, "SELECT * FROM TIGER_INFO");
的FillTable方法如下:
//Add buildTableModel method
public void FillTable(JTable table, String Query)
{
try
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:derby:STOCK_CONTROL");
Statement stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stat.executeQuery(Query);
System.out.println("Connected");
//Remove previously added rows
while (table.getRowCount() > 0)
{
((DefaultTableModel) table.getModel()).removeRow(0);
}
int columns = rs.getMetaData().getColumnCount();
while (rs.next())
{
Object[] row = new Object[columns];
for (int i = 1; i <= columns; i++)
{
row[i - 1] = rs.getObject(i);
}
((DefaultTableModel) table.getModel()).insertRow(rs.getRow() - 1, row);
}
rs.close();
stat.close();
conn.close();
}
catch (InstantiationException |
IllegalAccessException |
ClassNotFoundException |
SQLException e)
{
System.out.println(e);
e.printStackTrace();
}
}
否則,創建應用程序,但不顯示與數據的任何表。我的數據庫包含3列和3行,但我沒有看到我的數據顯示在JTable中。
我的問題是,我如何用我的數據庫填充我的JTable並在我的GUI應用程序上正確顯示它?
如果您需要其他東西,請讓我知道,我會盡我所能提供。
預先感謝您。
如何爲我的數據庫表創建一個變量?'String myTable =「TIGER_INFO」'? TIGER_INFO下面有一條紅線。 謝謝。 – juiceb0xk
你的意思是你想在這個查詢中替換你的表的名字'FillTable(tigerTable,「SELECT * FROM TIGER_INFO」);'如果是,你可以創建這個變量並且用這個名字連接它'FillTable(tigerTable,「SELECT * FROM「+ myTable);'如果不解釋更多@ juiceb0xk –
'List list = new ArrayList <>();' - 此時,TIGER_INFO用紅色加下劃線。我假設我們正在從我的表中創建一個數組列表;我如何讓TIGER_INFO變量指向我的TIGER_INFO表? –
juiceb0xk