从jtextfield将数据插入jtable

时间:2013-03-29 21:22:32

标签: java swing jtable jtextfield defaulttablemodel

我找到了以下代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        DefaultTableModel tableModel = new DefaultTableModel();
        JTable table = new JTable();
        table.setModel(tableModel);
        int c=0;
        Vector rl=new Vector<Object(6);        
        rl.add(c+1);
        rl.add(jTextField1.getText());
        rl.add(jTextField11.getText());
        rl.add(jTextField7.getText());
        rl.add(jTextField8.getText());
        rl.add(jTextField9.getText());
        tableModel.addRow(rl);}

但它不起作用。

当我点击添加按钮到其中给出的表格时,我必须复制与pcode,产品名称,价格,数量,总价格相对应的字段作为文本字段

1 个答案:

答案 0 :(得分:6)

不要直接使用“找到”代码。使用找到的代码中的想法,然后编写自己的代码。如果您遇到代码问题,您需要告诉我们您可能遇到的问题。 “不工作”告诉我们,我们可以用来帮助你。

如果你想要做的就是在现有的JTable中添加一行,你不应该在ActionListener中创建一个新的JTable。取而代之的是,

  • 获取JTable的模型。
  • 从JTextFields获取数据并使用数据创建一个Object数组或一个填充数据的Vector,如果JTable使用DefaultTableModel。
  • 或者,如果JTable使用AbstractTableModel,则使用JTextFields保存的数据创建适当的行对象。所需对象的类型取决于TableModel持有的对象类型。
  • 如果它是DefaultTableModel,则可以调用其addRow(...)方法将Vector或Object []数组添加到模型中。否则,您需要为AbstractTableModel类创建自己的addRow(...)方法。
  • 如果您确实创建了自己的addRow(...)方法,请务必在更改模型数据后调用适用的fireTableXXX(...)`方法。检查AbstractTableModel API以获取有关这些方法的更多详细信息,但请注意,它们对于通知所有侦听器更改模型(包括JTable本身)非常重要。
  • 首先,请务必阅读Swing JTable tutorial,因为大部分内容都是在那里讨论的。我自己认为教程的​​唯一缺点就是它讨论了AbstractTableModel并且几乎没有提供有关DefaultTableModel的任何信息,但是我们可以帮助你解决这个问题。