-5

我找到了以下代码:

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、产品名称、价格、数量、总价相对应的字段,这些字段是文本字段,当我单击添加按钮到其中给出的表时

4

1 回答 1

6

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

如果您只想在现有的 JTable 中添加一行,则不应在 ActionListener 中创建新的 JTable。反而,

  • 获取 JTable 的模型。
  • 如果 JTable 使用 DefaultTableModel,则从您的 JTextField 获取数据并使用这些数据创建一个 Object 数组或一个填充了数据的 Vector。
  • 或者,如果 JTable 使用 AbstractTableModel,则使用 JTextField 保存的数据创建适当的行对象。所需的对象类型取决于 TableModel 持有的对象类型。
  • 如果它是 DefaultTableModel,那么您可以调用它的addRow(...)方法将 Vector 或 Object[] 数组添加到模型中。否则,您需要addRow(...)为 AbstractTableModel 类创建自己的方法。
  • 如果您确实创建了自己的addRow(...)方法,请务必在更改模型数据后调用相应的 fireTableXXX(...)` 方法。检查AbstractTableModel API以获取有关这些方法的更多详细信息,但要知道它们对于通知所有侦听器模型的更改很重要,包括 JTable 本身。
  • 首先,请务必阅读Swing JTable 教程,因为其中大部分内容都在此处进行了讨论。在我个人看来,本教程唯一的缺点是它讨论了 AbstractTableModel 并且几乎没有提供有关 DefaultTableModels 的任何信息,但我们可以在这方面为您提供一些帮助。
于 2013-03-29T21:28:08.240 回答