我需要JTable使用從資料庫加載的資料進行創建,但我正在努力轉換ArrayList為支持表模型的東西。
我需要像這樣存盤資料:
loadProducts();
data = new Object[][]{
{1, "Big Mac", 100, 1},
{2, "McChicken", 40, 1},
{3, "Cheese", 100, 1}
};
而不是我使用這個函式來創建表,但我只從我的資料庫中獲得最后一個元素。如何在這里存盤資料庫中的每一行?
ArrayList<Produkt> productList;
private void createTable() {
String col[] = {"ID", "name", "price", "category"};
Object[][] data = new Object[0][];
DefaultTableModel tableModel = new DefaultTableModel(col, 0);
productTable.setModel(tableModel);
for (int i = 0; i < productList.size(); i ) {
int id = productList.get(i).getId();
String name = productList.get(i).getName();
double price = productList.get(i).getPrice();
int category = prodcttList.get(i).getCategory();
data = new Object[][]{
{id, name, price, category}
};
}
productsTable.setModel(new DefaultTableModel(
data, col));
}
uj5u.com熱心網友回復:
在每次迭代中,您都將創建一個新矩陣data,其中僅包含最后一次迭代產品的資訊。這就是為什么您只看到最后一項。這只是一個語法問題。
假設productList已經包含來自您的資料庫的結果,您可以使用data串列中的產品數初始化矩陣的行,而具有固定值 4 的列數,這是您要顯示的欄位數(id 、名稱、價格和類別)。
ArrayList<Produkt> productList;
private void createTable() {
String col[] = {"ID", "name", "price", "category"};
//Initialize the number of rows of your matrix with the number of products in your list
Object[][] data = new Object[productList.size()][4];
//Copy every i-th product field in its corresponding column
for (int i = 0; i < productList.size(); i ) {
data[i][0] = productList.get(i).getId();
data[i][1] = productList.get(i).getName();
data[i][2] = productList.get(i).getPrice();
data[i][3] = productList.get(i).getCategory();
}
productTable.setModel(new DefaultTableModel(data, col));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/485076.html
