更新当前的JTable模型

时间:2016-07-10 12:53:24

标签: java swing jtable

有没有办法更新DefaultTableModel上的当前JTable?为了澄清我的意思,我将使用下面的一些代码示例。

您可以像这样声明一个JTable

DefaultTableModel model = new DefaultTableModel(tableData, tableHeaders)
{
    private static final long serialVersionUID = 8785594035471551113L;

    @Override
    public boolean isCellEditable(int row, int column) 
    {
        return false;
    }
};

JTable table = new JTable(model);
panel.add(table);

我在问是否有办法做类似的事情

myTable.java

public class myTable extends JTable {
    private static final long serialVersionUID = -5819940358496590055L;

    public myTable(TableModel dM) {
        setModel(dM);
    }

    public myTable(Object[][] tableData, Object[] columnHeaders) {
        this(new DefaultTableModel(tableData, columnHeaders));
    }

    public void setEditable(boolean b) {
        DefaultTableModel model = (DefaultTableModel) this.getModel();

        //Do some code here to make the editable or uneditable

        setModel(model);
    }
}

someJavaFile.java

JTable table = new myTable(tableData, tableHeaders);
table.setEditable(false);
panel.add(table);

我不是要求你为我这样做,但我要求你帮我找到一种方法来更新当前DefaultTableModel

我感谢任何帮助

编辑以澄清

我正在尝试找到一种方法来操纵JTable上的当前DefaultTableModel,例如表格是否可编辑,因为没有方法可以支持切换表格是否可以在模型后编辑已经成型。只有isCellEditable()

为什么这会有用?

如果您想要使用ActionListener JButton上的{{1}}操作表的方式

,这将非常有用

1 个答案:

答案 0 :(得分:2)

  

诸如表格是否可编辑之类的事情,因为没有方法支持在模型制作完成后切换表格是否可编辑

您需要提供自定义TableModel。您可以通过扩展模型并添加几个方法将此功能构建到DefaultTableModel中。

或者您可以查看Row Table Model

在其他功能中,它允许您使整个模型可编辑或不可编辑。您还可以控制各列是否可编辑。