【问题标题】:How to add new rows to existing rows in JTable如何将新行添加到 JTable 中的现有行
【发布时间】:2014-07-16 14:51:35
【问题描述】:

我有一个以 Netbeans 形式开发的JTable。我希望程序以这样的方式工作,当我单击一个按钮时,新准备的记录将添加到现有记录中。我的问题是当我想添加新记录时,单击按钮的那一刻,它会替换现有记录。任何人都可以帮助我向现有记录添加新记录的方法吗?

【问题讨论】:

标签: java swing jtable


【解决方案1】:

使用DefaultTableModel 并在其上简单调用DefaultTableModel#addRow() 方法来添加新行。

  • 这里的表有 4 个现有行
  • 单击按钮会添加一个新行

示例代码:

    Object data[][] = { { "111 Hello", "Capital1", "TX 11111" },
                        { "222 Hello", "Capital2", "TX 22222" },
                        { "333 Hello", "Capital3", "TX 33333" },
                        { "444 Hello", "Capital4", "TX 44444" } 
                      };
    String col[] = { "Name", "Capital", "TX" };

    final DefaultTableModel model = new DefaultTableModel(data, col);
    final JTable table = new JTable(model);

    ....

    final JButton addButton = new JButton("Add");
    addButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            Object[] newRecord = { "555 Hello", "Capital5", "TX 55555" };
            model.addRow(newRecord); // <== Adding new row here
        }
    });

【讨论】:

  • 我已经按照你的方法,但是当我点击 Jbutton 时,它会替换第一行中的记录而不将其添加为新记录。我正在使用 netbeans 表单,请帮助我
  • 您是否尝试过我分享给您的示例代码。如果这不起作用,请先尝试,然后在您的原始帖子中分享您的代码。
【解决方案2】:

我的问题是当我想添加新记录时,当我单击按钮时,它会替换现有记录。

不要创建新的 TableModel。

您应该使用DefaultTableModel.addRow(...) 方法将新行添加到表的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2013-12-10
    • 2011-04-02
    • 2014-03-26
    • 2023-03-30
    相关资源
    最近更新 更多