Метод myTable.add (что-то) не делает то, что вы думаете.Вы хотели бы сделать что-то более похожее на myTable.getTableModel (). AddData (что-то), что является концептуально правильным, хотя такого метода addData () не существует.
Возможно, вы захотите сделать что-то вроде
TableModel myModel = new DefaultTableModel(something);
JTable myTable = new JTable(myModel);
, где есть несколько опций для что-то , потому что 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: И если вы хотите вызвать myModel.addData (что-то) изActionListener, то вам нужно идти по пути AbstractTableModel, поскольку DefaultTableModel не имеет этой функциональности.Поскольку MyTableModel является вашим классом, вы можете написать для него метод addData ().]
Кстати, ваши переменные CartItems и Cartgui нарушают стандартные соглашения о кодировании Java.Они должны начинаться с строчных букв.Однако это никак не влияет на то, работает ваш код или нет.