![](/img/trans.png)
[英]Add user input data to an ArrayList and display it into a Jtable using custom a Tablemodel
[英]data from arraylist is not added to tableModel
我使用JTable(tableModel)
和JPanel
制作了一個 GUI,用戶可以通過JTextFields
將數據添加到Arraylist
,但是由於某種原因,當我單擊添加JButton
時,添加失敗並指向我想要添加 arraylist 的行到 tableModel 的行。
public final static ArrayList<Members> adat = new ArrayList<>();
DefaultTableModel tableModel;
String[][] dummy = new String[][]{{"001", "Jack Black", "London", "20"}};
String[] header = new String[]{"id", "Name", "City", "Age"};
tableModel = new DefaultTableModel(dummy, header);
JTable t = new JTable();
t.setModel(tableModel);
panel1.add(new JScrollPane(t));
frame.add(panel1);
JPanel jp = new EditPanel();
frame.add(jp);
public static void newData() { // the "add" button function
Members newMember = null;
try {
newMember = new Members(
Integer.parseInt(EditPanel.idEdit.getText()),
EditPanel.nameEdit.getText(),
EditPanel.cityEdit.getText(),
Integer.parseInt(EditPanel.ageEdit.getText())
);
adat.add(newMember);
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "Error in modification", ERROR_MESSAGE);
}
toTable();
}
和 toTable toTable()
方法獲取從arraylist
到JTable
的成員數據
static void toTable() { // adding the users data to the table
if (adat.size() > 0) {
for (int i = 0; i < adat.size(); i++) {
int id = adat.get(i).id;
String name = adat.get(i).name;
String city = adat.get(i).city;
int age = adat.get(i).age;
Object[] data = new Object[4];
data[0] = id;
data[1] = name;
data[2] = city;
data[3] = age;
tableModel.addRow(data); // this is the line where the error points
}
}
}
您在tableModel.addRow(data);
遇到錯誤因為tableModel
沒有名為addRow
( docs ) 的方法。
您可能將DefaultTableModel tableModel
與實際的JTable t
混淆了。
它應該是t.addRow(data)
,盡管您需要先將t
設為全局!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.