在框架上刷新表格的行(不是行的值)?

时间:2014-03-05 11:35:29

标签: java swing jtable

很抱歉这么业余,我在一个框架上创建了一个“按钮”,这样当我们第一次点击按钮时,A ROW将被插入到框架上。但是我想要的是,当我点击按钮THE SECOND TIME时,行重新刷新(不创建新行!),我知道'.addRow(new Object [] {“”,“”,“”}) ;”是因为,因为每次单击按钮都会创建对象,那么我怎么可能修改代码呢?感谢您的关注。

*我的弱脑说,如果我只能清空'模型'对象(或者破坏对象,就像那样),那么我会找到解决方案,但我怎么可能清空/破坏那个'模型'对象呢?

import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.DefaultTableModel;

public class MyTable extends JFrame {

    private JTable table;
    private DefaultTableModel model;
    private JScrollPane scroll;
    private JButton createRow;
    private String headers[] = {"a", "b", "c"};

    public MyTable() {
        createRow = new JButton("Create Row");
        model = new DefaultTableModel();
        model.setColumnIdentifiers(headers);
        table = new JTable();
        table.setModel(model);
        scroll = new JScrollPane(table);
        add(createRow, java.awt.BorderLayout.NORTH);
        add(scroll, java.awt.BorderLayout.CENTER);
        createRowOn();
    }

    // while button is pressed then create A ROW
    public void createRowOn() {
        createRow.addActionListener(
                new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (e.getSource() == createRow) {
                    model.addRow(new Object[]{"", "", ""});
                }
            }
        });
    }

    public static void main(String args[]) {
        MyTable t = new MyTable();
        t.setVisible(true);
        t.setSize(300, 300);
    }
}

1 个答案:

答案 0 :(得分:5)

  

很抱歉这么业余

  

我在框架上创建了一个“按钮”,这样当我们点击按钮时   第一次,A ROW将被插入帧中。但是当我想要的时候   我点击第二次按钮,行清新(不是   创建一个新行!),我怀疑'new Object [] {“”,“”,“”}是   因为每次点击按钮都会创建对象,所以   我怎么可能修改代码?

  • 如果您想:

    ,则不清楚问题(JTable中没有添加任何内容)
    1. 添加新行(model.addRow)

    2. 删除所有行(setDataVector / setRowCount)

    3. 在JTables视图中重置值(setValueAt)

    4. 但是Oracle教程中描述了所有内容,其余部分位于DefaultTableModel