我创建了一个对象类型arrayList,但是表仍然没有将其识别为对象并给出了错误
这是它正在产生的错误。
找不到适合添加(object [])的方法
下面是使用的代码:
ArrayList<Object> CartItems = new ArrayList<Object>();
cartCheckout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Cartgui.setVisible(true);
for (int i = 0; i < candyList.size(); i++) {
String name = candyList.get(i).getCandyName();
int weight = candyList.get(i).getweight();
int priceLbs = candyList.get(i).getPriceLbs();
Object[] data = {name, weight, priceLbs};
Cartgui.add(data);//this line is producing error
}
}
});
我希望输出以表格形式显示名称,重量和价格磅。 cartgui是表名
答案 0 :(得分:0)
myTable.add(something)方法无法执行您的想法。您希望可以做更多类似myTable.getTableModel()。addData(something)的事情,尽管没有这样的addData()方法,但从概念上讲这是正确的。
您可能想做类似的事情
TableModel myModel = new DefaultTableModel(something);
JTable myTable = new JTable(myModel);
其中有一些 something 选项,因为DefaultTableModel具有多个构造函数。
但是,我个人几乎从未使用DefaultTableModel。相反,我做类似的事情
class MyTableModel extends AbstractTableModel {
//override getRowCount(), getColumnCount(), getColumnName(), getValueAt(), and possibly isCellEditable() and setValueAt()
}
MyTableModel myModel = new MyTableModel(); // or pass parameters since you're writing the constructor(s)
JTable myTable = new JTable(myModel);
因为最终,这种方式通常更容易且更令人满意。
[edit:并且,如果您想从ActionListener调用myModel.addData(something),则必须走AbstractTableModel路由,因为DefaultTableModel不具有该功能。由于MyTableModel是您的类,因此您可以为其编写addData()方法。]
顺便说一句,您的变量 CartItems 和 Cartgui 违反了标准Java编码约定。它们应以小写字母开头。但是,这对您的代码是否有效毫无影响。