我希望将JTextFields
的数据连续添加到Jtable
。
当我单击添加按钮时,JTextFields中的文本必须插入Jtable。
单击添加按钮时,此代码仅生成一行。 我希望将行添加到之前插入的行中。
public void actionPerformed(ActionEvent arg0) {
DefaultTableModel model = new DefaultTableModel();
table_1.setModel(model);
model.addColumn("Product Name");
model.addColumn("Product Price");
model.addColumn("Quantity");
String name = jFrame_pName.getText().trim();
String price = jFrame_pPrice.getText().trim();
String quantity = jFrame_quantity.getText().trim();
String st[] = {name, price, quantity};
model.addRow(st);
}
我是否需要在表格中添加EventHandler?谢谢。请帮我完成作业。
答案 0 :(得分:4)
移动这部分:
DefaultTableModel model = new DefaultTableModel();
table_1.setModel(model);
model.addColumn("Product Name");
model.addColumn("Product Price");
model.addColumn("Quantity");
到您的构造函数并将模型定义为实例成员。不要为每个按钮点击创建表模型。以下部分足以容纳actionPerformed
。
public void actionPerformed(ActionEvent arg0) {
String name = jFrame_pName.getText().trim();
String price = jFrame_pPrice.getText().trim();
String quantity = jFrame_quantity.getText().trim();
String st[] = {name, price, quantity};
model.addRow(st);
}
修改强>
如果您分享完整的代码,我可以告诉您将上述部分放在哪里。但是现在,下面的示例代码可以指导您。
public class TableClass {
DefaultTableModel model;
public TableClass() {
model = new DefaultTableModel();
table_1.setModel(model);
model.addColumn("Product Name");
model.addColumn("Product Price");
model.addColumn("Quantity");
JButton addButton = JButton("Add");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = jFrame_pName.getText().trim();
String price = jFrame_pPrice.getText().trim();
String quantity = jFrame_quantity.getText().trim();
String st[] = {name, price, quantity};
model.addRow(st);
}
})
}
}