Java 更新当前JTable模型

Java 更新当前JTable模型,java,swing,jtable,Java,Swing,Jtable,有没有办法在JTable上更新当前的DefaultTableModel?为了澄清我的意思,我将使用下面的一些代码示例 您可以像这样声明一个JTable DefaultTableModel model = new DefaultTableModel(tableData, tableHeaders) { private static final long serialVersionUID = 8785594035471551113L; @Override public bo

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

您可以像这样声明一个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

someJavaFile.java

我不是要你帮我做这件事,而是要你帮助我找到一种方法来更新当前的
DefaultTableModel

谢谢你的帮助

编辑以进行澄清

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

为什么这会有用

如果您希望在
JButton
或类似的工具上操作表与
ActionListener
的工作方式,这将非常有用

例如表格是否可编辑,因为没有任何方法支持在创建模型后切换表格是否可编辑

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

或者你也可以去看看

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

例如表格是否可编辑,因为没有任何方法支持在创建模型后切换表格是否可编辑

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

或者你也可以去看看


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

保留对当前
DefaultTableModel
的引用。它有你更新它所需要的所有方法。@AndrewThompson你能详细介绍一下它对这个具体的例子有什么帮助吗,因为没有
模型。setEditable()
你是想让一些单元格不可编辑还是什么的?我在代码上做了类似的事情,检查它是否适合你。这与@AndrewThompson所写的内容类似,但每一列都要根据@Frakcool的想法调整建议,使表中的某些列可以编辑。保持
布尔[]可编辑。将
setEditable(boolean)
方法更改为
setEditable(boolean,int)
-
boolean
告诉是否使列可编辑,而
int
指定列。然后更改
isCellEditable()
方法以从数组中获取
布尔值。保留对当前
DefaultTableModel
的引用。它有你更新它所需要的所有方法。@AndrewThompson你能详细介绍一下它对这个具体的例子有什么帮助吗,因为没有
模型。setEditable()
你是想让一些单元格不可编辑还是什么的?我在代码上做了类似的事情,检查它是否适合你。这与@AndrewThompson所写的内容类似,但每一列都要根据@Frakcool的想法调整建议,使表中的某些列可以编辑。保持
布尔[]可编辑。将
setEditable(boolean)
方法更改为
setEditable(boolean,int)
-
boolean
告诉是否使列可编辑,而
int
指定列。然后更改
isCellEditable()
方法以从数组中获取
布尔值。谢谢。这给了我一个开始的地方:)谢谢。这给了我一个起点:)
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);
    }
}
JTable table = new myTable(tableData, tableHeaders);
table.setEditable(false);
panel.add(table);