我這裏有一個代碼,我就如何做這件事情的工作相當混亂。該計劃的目的是顯示我們目前的庫存清單。我希望它自動添加到我的表格中。我怎樣才能做到這一點?將空行添加到空白的java表中?
我的錯誤路線是
String[] itemize = { s1,s2,s3,s4,s5,s6,s7,s8,s9,s0 };
//invTable.addRow(itemize);
我也包括我的代碼,以防萬一有人需要對其進行測試。謝謝!
invTable.setAutoCreateRowSorter(true);
invTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {{null, null, null, null, null, null, null, null, null, null}},
new String [] {
"Item", "Code", "Weight", "Doctor", "Supplier", "Department", "Cost", "Price", "Quantity", "Threshold"
}
));
我認爲問題在於上面的代碼。
我終於做到了工作,感謝的人在這個網站上的幫助。我剛剛刪除了上面的代碼。
private void insertRows() throws SQLException, Exception{
modelx = new DefaultTableModel();
modelx.addColumn("Name");
modelx.addColumn("ID");
modelx.addColumn("Weight");
modelx.addColumn("Doctor");
modelx.addColumn("Supplier");
modelx.addColumn("Department");
modelx.addColumn("Cost");
modelx.addColumn("Price");
modelx.addColumn("Quantity");
modelx.addColumn("Threshold");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\\floresClinic.accdb;";
conn = DriverManager.getConnection(database, "", "");
s = conn.createStatement();
rs = s.executeQuery("SELECT * FROM medItem ");
int cou = 0;
while(rs.next())
{
s1 = rs.getString("productName");
s2 = rs.getString("productID");
s3 = rs.getString("productWeight");
s4 = rs.getString("doctor");
s5 = rs.getString("sName");
s6 = rs.getString("department");
s7 = rs.getString("unitCost");
s8 = rs.getString("unitPrice");
s9 = rs.getString("quantity");
s0 = rs.getString("threshold");
if(!s2.equals("Select?")){
modelx.insertRow(0, new Object [] {s1, s2, s3, s4, s5, s6, s7, s8, s9, s0});
//String[] itemize ={s1,s2,s3,s4,s5,s5,s7,s8,s9,s0};
//System.out.println(s1+s2);
//modelx.addRow(itemize);
}
cou++;
}
}
現在我唯一的問題是它顯示倒退。第一行包含我的數據庫表的最後一行。
嘗試將行直接添加到TableModel而不是JTable ... – MadProgrammer
您不應該將字符串提取爲unitCost,unitPrice,數量,閾值所有看起來屬於我的數字 – MadProgrammer
此外命名insertRow()方法的語義意味着該方法應該一次只插入一行。我不認爲每次添加一行時都應該創建一個新的表格和表格模型。除非我對方法名稱錯誤。只是一個想法。 –