【问题标题】:Updating the current JTable model更新当前的 JTable 模型
【发布时间】:2016-11-12 12:34:12
【问题描述】:

有没有办法在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

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()

为什么会有用?

如果您想在JButton 或类似的东西上使用ActionListener 操作表格的工作方式,这将很有用

【问题讨论】:

  • 保留对当前DefaultTableModel 的引用。它具有更新它所需的所有方法。
  • @AndrewThompson 您能否对此进行扩展,因为没有model.setEditable()
  • 你是想让某些单元格不可编辑还是什么?
  • 我在this question 的代码上做了类似的事情,检查它是否适合你。它类似于@AndrewThompson 写的,但对于每一列
  • 使建议适应@Frakcool 的想法,即让表格的一些 列可编辑。保留与表中列数相同大小的boolean[] editable;。将setEditable(boolean) 方法更改为setEditable(boolean, int) - boolean 告诉是否使列可编辑,int 指定列。然后更改isCellEditable()方法,从数组中获取boolean

标签: java swing jtable


【解决方案1】:

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

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

或者您可以查看Row Table Model

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

【讨论】:

  • 谢谢。这给了我一个开始的地方:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多