2010-12-07 54 views
1

我想实现一个只能编辑和更新编程的JTable。我不希望启用用户交互。一个Jtable的实现

首先,输入将来自一个字符串元素数组(在从字符串split中填充数组之后)。

然后我想用数组数据设置字段。

如何将列名称存储为Final或任何表格生命?

如果我不想交互,是否需要实现TableModel?

回答

3

您应该仔细阅读关于How to Use Tables的Java文档。

事情你似乎兴趣:

isCellEditable() - 使其返回false意味着用户无法编辑的任何细胞。 getColumnName() - 在数组或字符串列表中查找名称。

+0

+1,关键是覆盖isCellEditable,所以用户不能更改数据。 – camickr 2010-12-07 18:47:14

0

是的,该模型将是有用的,但不是必要的(也只是一个DefaultTableModel)。

其实你可以只需填写JTable中使用正确的构造函数静态数据:

public JTable(Object[][] rowData, Object[] columnNames) 

,但你不会有在桌子里面的数据进行任何控制。

该模型不仅用于提供与编辑功能的交互,还为表提供数据源,以便读取或写入,这就是为什么总是有好的一个。

+0

好吧。我将需要一个数据源,所以我将实现一个模型。所以只是为了明确步骤。创建一个Jtable,创建包含数据源的模型。这些如何连接?此外,我有方法来搜索名称[] []并返回数组的索引。然后我用它的索引值填充这个数组。这些方法应该在哪里定义?在模型之外还是?谢谢 – jarryd 2010-12-07 18:49:47

1

关于可编辑性:使用JXTable - 它支持分层的程序化配置控制。具体来说,

  • 支持每列和每个表的缩小(即,为只读)
  • 方面的电池可编辑的属性总是(即table.setValueAt什么也不做,如果单元格不可编辑)