我对 JTable
很陌生,对它的过多信息感到困惑。我希望你们能回答几个问题。
- 如何单独设置每个单元格的值?是通过
TableModel
的实现(我不太清楚如何使用它)?我知道可以使用二维矩阵预先设置数据。 - 我怎样才能使下表的标题位置合适(条目完全显示)?如果您仔细查看表中的第一个条目,就会发现 Job Grade 被部分隐藏了。我到处寻找解决方案,但无济于事。
最佳答案
这个概念是您将 DefaultTableModel 子类化为您自己的类。例如,如果你想显示一个工作表,你可以创建一个名为 JobsTableModel 的类。 JobsTableModel 通常有一个 Job 类型的对象集合,可以将其传递给构造函数。您的 JobsTableModel 必须能够回答以下问题:
- 有多少行
- 有多少列
- X 列的名称是什么
- X列的数据类型是什么
- 单元格 (X,Y) 中的值是多少
它通过覆盖以下方法来做到这一点:
public int getRowCount()
public int getColumnCount()
public String getColumnName(int columnIndex)
public Class<?> getColumnClass(int columnIndex)
public Object getValueAt(int rowIndex, int columnIndex)
然后 JTable 实现可以使用此信息来填充表格,而您不必担心在每个单元格中设置值。此外,JTable 实现将自动免费为您提供排序和列重新排序。如果您必须直接填充每个单元格,这将是一场噩梦。
关于正确设置宽度,我认为没有任何自动方法可以做到这一点,您只需要反复试验即可。您可以按如下方式设置列宽(以像素为单位):
TableColumn column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(width);
关于java - JTable 帮助(调整标题和数据源的大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683056/